一元加(+)

一元加+)运算符在其操作数之前并计算其操作数,但会尝试将其转换为数字,如果它还不是的话。

尝试一下

语法

js
+x

描述

虽然一元减(-)也可以转换非数字,但一元加是将某些东西转换为数字的最快和首选方法,因为它不对数字执行任何其他操作。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 truefalsenull。支持十进制和十六进制(以 0x 为前缀)格式的整数。支持负数(但不适用于十六进制)。对 BigInt 值使用该运算符会引发 TypeError。如果它无法解析特定值,它将计算为 NaN

示例

数字用法

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

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

非数字用法

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

规范

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

浏览器兼容性

BCD tables only load in the browser

参见