parseInt(1e1); //10
parseInt('1e1'); //1
parserFloat('1e1') //10

为什么在第二种情况下parseInt返回1?这三个不应该返回相同的结果吗?

最佳答案

  • 1e1是一个数字文字,其值为10parseInt()看到10并愉快地返回它。
  • '1e1'是一个字符串,而parseInt()无法识别指数符号,因此它停在第一个字母处。
  • '1e1'作为字符串,当解析为浮点数时非常好。

  • 奖励:parseInt('1e1', 16)返回481,将其解析为3位十六进制数字。

    10-08 06:22