链接:Number(null);上面的代码将返回:__牛客网
来源:牛客网
Number()可以用于任何数据类型的转换。转换规则如下:
- 1.如果是Boolean值,true和false将分别被转换为1或0.
- 2.如果是null值,返回0;
- 3.如果是undefined,返回NaN;
- 4.如果是字符串则遵循以下规则:
- a.字符串只把含数字(包含前面带正号或负号的情况),则将其转换为十进制数值,前导零会被忽略。(例如“011”会变成11);
- b.如果字符串中包含有效的浮点格式,则将其转换为相应的浮点数值,前导零会被忽略;
- c.如果字符串中包含十六进制格式,则将其转换为相同大小的十进制整数;//number("01f")=31
- d.如果字符串是空的,则将其转换为0;//number(" ")=0;
- e.如果字符串中包含除以上格式之外的字符,则将其转换为NaN.//number("helloworld")=NaN
- 5.如果是数值,不用说当然是传啥返啥;
- 6.如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次按照前面的规则转换返回的字符串值。
布尔类型里只有这几参数个返回false,其它都为true
- Boolean(undefined) // false
- Boolean(null) // false
- Boolean(0) // false
- Boolean(NaN) // false
- Boolean('') // false