parseInt(1e1); //10
parseInt('1e1'); //1
parserFloat('1e1') //10
为什么在第二种情况下parseInt返回1?这三个不应该返回相同的结果吗?
最佳答案
1e1
是一个数字文字,其值为10
; parseInt()
看到10
并愉快地返回它。 '1e1'
是一个字符串,而parseInt()
无法识别指数符号,因此它停在第一个字母处。 '1e1'
作为字符串,当解析为浮点数时非常好。 奖励:
parseInt('1e1', 16)
返回481
,将其解析为3位十六进制数字。