我已经看过使用plus运算符将字符串转换为数字的代码。
这看起来像是:
var x ="5",y;
y = +x;
console.log(typeof y) //number
这是如何运作的?
答案 0 :(得分:3)
事实上,有两个+
运算符:二元+运算符和这一个:一元+运算符。
了解它的描述in the MDN:
- (Unary Plus)
一元加号运算符位于其操作数之前,计算结果 操作数但尝试将其转换为数字,如果不是 已经。例如,y = + x取x的值并将其赋值给 Ÿ;也就是说,如果x为3,y将得到值3,x将保留 价值3;但如果x是字符串“3”,y也会获得该值 虽然一元否定( - )也可以转换非数字,但是一元加号是将某些东西转换成数字的最快和最优选的方式。 数字,因为它不执行任何其他操作 数。它可以转换整数和浮点数的字符串表示, 以及非字符串值true,false和null。整数 支持十进制和十六进制(“0x” - 前缀)格式。 支持负数(但不支持十六进制)。如果不能 解析一个特定的值,它将评估为NaN。
答案 1 :(得分:0)
var x = "5",
y;
您声明了两个分别名为x
和y
的变量。前者设置为保存字符串"5"
,后者保存undefined
值(因为它已声明但未定义)。
然后,您将y
设置为Number
字符串"5"
的转换(通过一元运算符+
),即5
。因此,typeof y
为number
。
+
运算符是unary operator。它会计算一个试图将其转换为数字的对象。