- 如果是Boolean值,true和false类将分别被转换成1 和 0
- 如果是数字值,只是简单地传入和返回
- 如果是null值,返回0
- 如果是undefined,返回NaN
- 如果是字符串遵循以下规则:
- 如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值
即"1"会变成 1 ,"123" 会变成123,而 "011" 会变成11(注意:前导的零被忽略了)
- 如果字符串中含有有效的浮点格式,如"1.1" ,则将其转换为对应的浮点数值
(同样也会忽略前导零)
- 如果字符串中包含有效的十六进制格式,例如:"0xf" ,则将其转换为相同大小的十进制整数值
- 如果字符串是空的(不包含任何字符),则将其转换为0
- 如果字符串中包含除上述格式之外的字符,则将其转换为NaN
- 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结
果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值
- parseInt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空
格,直至找到第一个非空格字符,如果第一个字符不是数字字符或者负号,paeseInt()就会返回
NaN;也就是说,用parseInt()转换空字符串会返回NaN(Number()对空字符返回0)。如果第一
个字符是数字字符。parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个
非数字字符。例如,"1234blue"会被转换成1234,因为"blue"会被完全忽略,类似的"22.5"会被转换
为22,因为小数点不是一个有效的数字字符。
JavaScript中转换为数值类型问题
最新推荐文章于 2024-03-20 20:32:14 发布