一元加号 (+)

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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

试一试

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

描述

虽然一元求反 (-) 也可以转换非数字,但一元加法是转换为数字的最快和首选方法,因为它不会对数字执行任何其他操作。

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

浏览器兼容性

另见