javascript非数值型转化为数值

Number()可以将任何类型的值转化为数值。
转换规则如下:

  • 如果是Boolean值,true和false分别转化为1和0
  • 如果是数字,只是简单的传入和返回
  • 如果是null, 返回0
  • 如果是undefined, 返回NaN
  • 如果是如果是字符串,按照下面的规则:
    • 如果只包含数字,则将其转化为十进制。
    • 如果数字中包含浮点格式,比如‘1.1’转化为1.1
    • 如果包含有效的十六进制,比如‘0xf’转化为15
    • 如果字符串是空的(不包含任何字符)转化为0
    • 如果包含上述其他的格式转化为NaN
  • 如果是对象,则调用对象的valueOf()方法,依照前面的规则转化,如果结果为NaN,则调用对象的toString()方法,再次按照前面的方法转换返回的字符串
 Number(null)   //0 
 Number('abc')  //NaN
 Number('')     //0
 Number({toString:function(){return '123'; }}) //123
 Number({valueOf:function(){return 456; }}) //456

参考: javascript高级程序设计(第三版)

你可能感兴趣的:(javascript)