Number()函数基于如下规则执行转换
- 布尔值,
true
转换为1,false
转换为0 - 数值,直接返回
- null,返回
0
- undefined,返回
NaN
- 字符串
1、如果字符串包含
数值字符
,包括数值字符前面带加、减号的情况,则转换为一个十进制数值。举个例子,Number(1’)返回1,Number(‘123’)返回123,Number(‘011’)返回11(忽略前面的0)
2、如果字符串含有有效的
浮点值
格式如"1.1",则会转换为相应的浮点值(同样忽略前面的0)
3、如果字符串包含有效的
十六进制
格式如"0xf",则会转换为于该十六进制值对应的十进制整数值
4、如果是
空字符串
(不包含字符),则返回0
5、如果字符串包含 除上述情况之外的
其他字符
(像字母,下划线,符号等等),则返回NaN,例如:
Number(“Hello world”)返回NaN
Number("-1a")返回NaN
- 对象,调用valueOf()方法,并按照上述规则转换返回的值。如果转换结果是NaN,则调用toString()方法,再按照字符串的规则转换