一元加号 (+)

**一元加号 (+) ** 运算符位于其操作数之前,并计算其操作数,但如果其操作数还不是数字,则尝试将其转换为数字

试一试

语法

js
+x

描述

虽然一元否定 (-) 也可以转换非数字,但一元加号是将某些内容转换为数字最快且首选的方式,因为它不对数字执行任何其他操作。

一元加号执行与大多数内置方法(期望数字)使用的正常数字强制转换完全相同的步骤。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 truefalsenull。支持十进制和十六进制 (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 语言规范
# sec-unary-plus-operator

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅