hihuimin

JavaScript 中把一个字符串转换成数字类型的方法有多种,比如说对于变量a,常见的转换书写方式有Number(a)、+a、~~a、parseInt(a)、parseFloat(a),各自都有自己的适用场合,对这几种转换方式在这里稍微小结下:

  1. Number 和 + 的效果等价;
  2. 当转换失败时 ~~ 返回0,其他的返回NaN;
  3. ~~ 和 parseInt 不会返回浮点数;
  4. Number、+、~~ 将字符串看作一整体做转换,而parseInt、parseFloat 允许局部转换;
  5. 对于八进制表示,parseInt 可进行正确的转换,其他方式则会忽略前导0;
  6. parseFloat 不识别十六进制整数,其他方式可正确转换,另外十六进制带上小数均判定为无效的数字型。
举几个例子好让大家明白些:
      Number + ~~ parseInt parseFloat
    \'esun\' NaN NaN 0 NaN NaN
    \'500\' 500 500 500 500 500
    \'500wan\' NaN NaN 0 500 500
    \'500.5\' 500.5 500.5 500 500 500.5
    \'0500\' 500 500 500 320 500
    \'0500.5\' 500.5 500.5 500 320 500.5
    \'0x500\' 1280 1280 1280 1280 0
    \'0x500.5\' NaN NaN 0 1280 0

    分类:

    技术点:

    相关文章: