Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Toán tử phủ định một ngôi (Unary Negation -) trong JavaScript

Đị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ứcUnary +Unary -
+"5"5-5
+true1-1
+null0-0 (0)
+"abc"NaNNaN

Ứ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.