我已经看到了将字符串转换为数字的不同解决方案,并希望有一些约定。
我存储了这个技巧:
"55" >> 0
这对于这个小数字可以正常工作,但我们可以采用这个奇怪的具体数字:
"1450088100000" >> 0
,这会产生负面结果
Number("1450088100000")
工作正常。
Number()
并忽略这些按位技巧?
console.log("55" >> 0)
console.log("1450088100000" >> 0)
console.log(Number("1450088100000"))
答案 0 :(得分:1)
你应该总是忽略这些技巧。可以说,在Javascript中将字符串转换为int的正确方法是parseInt。数字函数也是一个不错的选项,但它可以将任何类型的对象转换为数字。
我收集的其他两个是JS中弱类型的人工制品。即使他们按预期工作,我也不会使用它们,因为它们对大多数程序员来说都是不直观的,而且通常看起来像是黑客。
答案 1 :(得分:1)
JavaScript数字始终是浮点数(JavaScript中只有一种数字类型,与大多数语言不同),但有几种方法可以将值强制转换为数字,但工作方式不同:
Number(x)
,parseFloat(x)
和+x
都会将x
作为浮点数。parseInt(x)
会将x
作为整数。x | 0
和x >> 0
会将x
作为签名的 32位整数。 (通常,这适用于大多数按位运算符。)x >>> 0
会将x
作为无符号 32位整数。我建议您根据自己的要求使用Number
,parseFloat
或parseInt
,因为这些要求最为清晰直观。