return "1"; // returns string
return +"1"; // returns int
我想知道在使用 +“ n ”将字符串转换为int时调用此方法。
答案 0 :(得分:5)
这只是一元+
运算符根据语言规范执行的内在类型强制。
因此,虽然从概念上来说它与一元-
正好相反,因为+
操作只是意味着“乘以正1
”,唯一真正的工作就是将价值强加给一个数字。
答案 1 :(得分:4)
来自MDN:
一元加(+)
一元加号运算符在其操作数之前,并计算其值 操作数但尝试将其转换为数字,如果它不是 已经。虽然一元否定( - )也可以转换非数字, unary plus是转换内容的最快和首选方式 变成一个数字,因为它不执行任何其他操作 数。它可以转换整数和浮点数的字符串表示, 以及非字符串值true,false和null。整数 支持十进制和十六进制(" 0x" -prefixed)格式。 支持负数(但不支持十六进制)。如果不能 解析一个特定的值,它将评估为NaN。
示例:
+3 // 3 +"3" // 3 +true // 1 +false // 0 +null // 0
答案 2 :(得分:1)
您正在使用一元运算符+
,它尝试将任何内容转换为数字(作为浮点数)。
请注意,如果无法将其转换为数字,则可能会返回NaN
。
同样,您可以使用parseFloat
,也可以返回NaN
parseFloat(anyValue, 10);
答案 3 :(得分:0)
您正在应用一元运算符+
。
它没有为字符串定义,因此JS必须先将字符串转换为数字。
当然,请注意不要将其意外地转换为二元运算符。这不是你想在真实代码中使用的东西,因为它有点脆弱:)