试一试
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
语法
js
+x
描述
虽然一元求反 (-) 也可以转换非数字,但一元加法是转换为数字的最快和首选方法,因为它不会对数字执行任何其他操作。
一元加法执行的步骤与大多数期望数字的内置方法使用的常规数字强制转换完全相同。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 true、false 和 null。支持十进制和十六进制(0x 前缀)格式的整数。支持负数(但不支持十六进制)。如果无法解析特定值,则会计算为 NaN。与其他算术运算符(可用于数字和 BigInt)不同,对 BigInt 值使用 + 运算符会抛出 TypeError。
示例
与数字一起使用
js
const x = 1;
const y = -1;
console.log(+x);
// 1
console.log(+y);
// -1
与非数字一起使用
js
+true // 1
+false // 0
+null // 0
+[] // 0
+function (val) { return val; } // NaN
+1n // throws TypeError: Cannot convert BigInt value to number
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-unary-plus-operator |
浏览器兼容性
加载中…