11

我想知道为什么运行第三行代码后结果a是5?

a = 10;
b = 5;
a =+ b;
4

2 回答 2

41

尴尬的格式:

a =+ b;

相当于:

a = +b;

+b只是一种转换b为数字的奇特方式,如下所示:

var str = "123";
var num = +str;

你可能想要:

a += b;

相当于:

a = a + b;
于 2012-04-15T09:20:42.990 回答
0

函数前面的 + 号,实际上称为一元加号,是一组称为一元运算符和(一元加号)的一部分,用于将字符串和其他表示形式转换为数字(整数或浮点数)。

一元运算是只有一个操作数的运算,即单个输入。这与使用两个操作数的二元运算形成对比。

基本用途:

const x = "1";
const y = "-1";
const n = "7.77";

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

console.log(+n);
// expected output: 7.77

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

当 + 号位于变量、函数或任何返回的字符串表示之前,输出将被转换为整数或浮点数;一元运算符 (+) 也转换非字符串值 true、false 和 null。

于 2022-03-03T08:14:17.247 回答