我想知道为什么运行第三行代码后结果a
是5?
a = 10;
b = 5;
a =+ b;
尴尬的格式:
a =+ b;
相当于:
a = +b;
这+b
只是一种转换b
为数字的奇特方式,如下所示:
var str = "123";
var num = +str;
你可能想要:
a += b;
相当于:
a = a + b;
函数前面的 + 号,实际上称为一元加号,是一组称为一元运算符和(一元加号)的一部分,用于将字符串和其他表示形式转换为数字(整数或浮点数)。
一元运算是只有一个操作数的运算,即单个输入。这与使用两个操作数的二元运算形成对比。
基本用途:
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。