补点JavaScript 基础:字符串到数字类型的转换(Number, +, ~~, parseInt, parseFloat)

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+~~parseIntparseFloat
'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
posted @ 2011-03-30 10:29  hihuimin  阅读(731)  评论(1编辑  收藏  举报