以下表达式在JavaScript中给出了特殊的结果。
typeof (5 + "7") // Gives string
typeof (5 - "7") // Gives number
如何将第一个表达式的结果作为数字类型?
如果没有明确地将7转换为数字,有没有办法做到这一点?
请澄清。
答案 0 :(得分:4)
首先尝试将字符串解析为整数。您可以使用+
隐式解析字符串,也可以使用parseInt
解析为整数。
typeof (5 + +"7")
或
typeof (5 + parseInt("7"))
答案 1 :(得分:1)
是的,有一种方法可以做到这一点,而无需将字符串显式转换为数字,而是通过隐式转换字符串。例如,您可以使用+
运算符,这会导致将字符串隐式转换为数字,因为它只能应用于数字:
typeof (5 + +"7")
但这不是非常易读的代码。您最好使用显式转换:
typeof (5 + parseFloat("7"))
答案 2 :(得分:0)
javascript中的加号将数字加在一起,但它也会连接字符串,当一个的值加在一起是一个字符串时,后者就完成了,无论其他值是什么
减号减去,你不能从字符串中减去一个字符串,所以它唯一的意思就是减去数字
所以换句话说
5 + "7" === "57" // string
5 + 7 === 12 // number
5 - "7" === -2 // number
所以不,您必须将字符串转换为数字才能将其添加到另一个数字
5 - ( parseInt("7", 10) ) === -2 // number
5 - ( +"7" ) === -2 // number
答案 3 :(得分:0)
通过将字符串转换为数字
,您能够 的唯一方法typeof (5 + parseInt("7"))
N.b。如果你使用加号运算符,则乘法/除/减工作的方式不同,并将字符串类型转换为数字(除非是NaN)