Định nghĩa
Toán tử - một ngôi: chuyển toán hạng sang số (nếu chưa phải), sau đó đổi dấu.
Ví dụ
<script>
var a = true;
var b = '0xFF'; // hex string
var c = "false";
var c1 = -a; // -1 (true → 1 → -1)
var c2 = -b; // -255 (hex → 255 → -255)
var c3 = -c; // NaN ("false" không parse được số)
document.write("-true = " + c1 + "<br>"); // -1
document.write("-'0xFF' = " + c2 + "<br>"); // -255
document.write("-'false' = " + c3); // NaN
</script>
Quy tắc ép kiểu
- String số hợp lệ ("123", "0xFF", "1.5e2") → số → đổi dấu.
- String không phải số → NaN.
- Boolean → 1/0 → đổi dấu.
- null → 0 → -0 (hiển thị 0).
- undefined → NaN.
- Object → valueOf/toString → số → đổi dấu.
So sánh với Unary Plus (+)
| Biểu thức | Unary + | Unary - |
|---|---|---|
| +"5" | 5 | -5 |
| +true | 1 | -1 |
| +null | 0 | -0 (0) |
| +"abc" | NaN | NaN |
Ứng dụng
- Nhanh chóng ép kiểu sang Number:
+str(unary plus) phổ biến hơn-str. - Đổi dấu số:
-x.