2

我见过使用加号运算符将字符串转换为数字的代码。

这看起来像:

var x ="5",y;
y = +x;
console.log(typeof y) //number

这是如何运作的?

4

2 回答 2

3

事实上,有两个+运算符:二元 + 运算符和这个:一元 + 运算符

看看它在 MDN 中是如何描述的:

  • (一元加)

一元加号运算符在其操作数之前并计算其操作数,但尝试将其转换为数字,如果还没有的话。例如,y = +x 获取 x 的值并将其分配给 y;也就是说,如果 x 为 3,则 y 将获得值 3,而 x 将保留值 3;但如果 x 是字符串“3”,y 也将得到值 3。虽然一元否定 (-) 也可以转换非数字,但一元加号是将某物转换为数字的最快和首选方法,因为它不对该号码执行任何其他操作。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 true、false 和 null。支持十进制和十六进制(“0x”前缀)格式的整数。支持负数(虽然不支持十六进制)。如果它无法解析特定值,它将评估为 NaN。

于 2013-10-10T13:12:53.097 回答
0
var x = "5",
    y;

您正在声明两个分别命名为x和的变量y。前者设置为保存字符串"5",后者保存undefined值(因为它已声明但未定义)。然后,您将设置为字符串类型的y转换(通过一元运算符),即. 所以你要成为.Number"5"+5typeof ynumber

+运算符是一元运算符。它评估一个试图将其转换为数字的对象。

于 2013-10-10T13:14:24.327 回答