我见过使用加号运算符将字符串转换为数字的代码。
这看起来像:
var x ="5",y;
y = +x;
console.log(typeof y) //number
这是如何运作的?
我见过使用加号运算符将字符串转换为数字的代码。
这看起来像:
var x ="5",y;
y = +x;
console.log(typeof y) //number
这是如何运作的?
事实上,有两个+
运算符:二元 + 运算符和这个:一元 + 运算符。
看看它在 MDN 中是如何描述的:
- (一元加)
一元加号运算符在其操作数之前并计算其操作数,但尝试将其转换为数字,如果还没有的话。例如,y = +x 获取 x 的值并将其分配给 y;也就是说,如果 x 为 3,则 y 将获得值 3,而 x 将保留值 3;但如果 x 是字符串“3”,y 也将得到值 3。虽然一元否定 (-) 也可以转换非数字,但一元加号是将某物转换为数字的最快和首选方法,因为它不对该号码执行任何其他操作。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 true、false 和 null。支持十进制和十六进制(“0x”前缀)格式的整数。支持负数(虽然不支持十六进制)。如果它无法解析特定值,它将评估为 NaN。
var x = "5",
y;
您正在声明两个分别命名为x
和的变量y
。前者设置为保存字符串"5"
,后者保存undefined
值(因为它已声明但未定义)。然后,您将设置为字符串类型的y
转换(通过一元运算符),即. 所以你要成为.Number
"5"
+
5
typeof y
number
+
运算符是一元运算符。它评估一个试图将其转换为数字的对象。