Unary plus (+)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Toán tử unary plus (+) đứng trước toán hạng của nó và đánh giá thành toán hạng đó nhưng cố gắng chuyển đổi nó thành số, nếu chưa phải là số.

Try it

const x = 1;
const y = -1;

console.log(+x);
// Expected output: 1

console.log(+y);
// Expected output: -1

console.log(+"");
// Expected output: 0

console.log(+true);
// Expected output: 1

console.log(+false);
// Expected output: 0

console.log(+"hello");
// Expected output: NaN

Cú pháp

js
+x

Mô tả

Mặc dù unary negation (-) cũng có thể chuyển đổi giá trị không phải số, unary plus là cách nhanh nhất và được ưu tiên để chuyển đổi thứ gì đó thành số, vì nó không thực hiện bất kỳ phép toán nào khác trên số đó.

Unary plus thực hiện chính xác các bước giống như number coercion thông thường được sử dụng bởi hầu hết các phương thức tích hợp sẵn mong đợi số. Nó có thể chuyển đổi các biểu diễn string của số nguyên và số thực, cũng như các giá trị không phải string true, falsenull. Số nguyên ở cả định dạng thập phân và thập lục phân (có tiền tố 0x) đều được hỗ trợ. Số âm được hỗ trợ (mặc dù không dành cho hex). Nếu không thể phân tích cú pháp một giá trị cụ thể, nó sẽ đánh giá thành NaN. Không giống như các toán tử số học khác, hoạt động với cả number và BigInt, việc sử dụng toán tử + trên các giá trị BigInt sẽ ném ra TypeError.

Ví dụ

Sử dụng với số

js
const x = 1;
const y = -1;

console.log(+x);
// 1
console.log(+y);
// -1

Sử dụng với giá trị không phải số

js
+true  // 1
+false // 0
+null  // 0
+[]    // 0
+function (val) { return val; } // NaN
+1n    // throws TypeError: Cannot convert BigInt value to number

Đặc tả

Specification
ECMAScript® 2027 Language Specification
# sec-unary-plus-operator

Tương thích trình duyệt

Xem thêm