与数值相关的方法
parseInt()
parseInt方法用于将字符串转为整数,字符串头部有空格,空格会被自动去除,如果参数不是字符串,则会先转为字符串再转换。
parseInt(1.23) // 1
parseInt(' 81') // 81
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') // 15
如果字符串的第一个字符不能转化伟数字,返回NaN
parseInt的返回值只有两种可能,要么是一个十进制整数,要么是NaN
如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。
如果字符串以0开头,将其按照10进制解析。
parseInt('1000', 2) // 8
parseInt('1000', 6) // 216
parseInt('1000', 8) // 512
二进制、六进制、八进制的1000,分别等于十进制的8、216和512。可以用parseInt方法进行进制的转换。
如果字符串包含对于指定进制无意义的字符,则从最高位开始,只返回可以转换的数值。如果最高位无法转换,则直接返回NaN。
parseFloat()
1.parseFloat方法用于将一个字符串转为浮点数。
2.如果字符串符合科学计数法,则会进行相应的转换。
3.如果字符串包含不能转为浮点数的字符,则不再进行往后转换,返回已经转好的部分。
4.parseFloat方法会自动过滤字符串前导的空格。
5.如果参数不是字符串,或者字符串的第一个字符不能转化为浮点数,则返回NaN。
isNaN()
isNaN方法可以用来判断一个值是否为NaN。
但是,isNaN只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串
isFinite()
isFinite方法返回一个布尔值,表示某个值是否为正常的数值。
isFinite(Infinity) // false
isFinite(-Infinity) // false
isFinite(NaN) // false
isFinite(undefined) // false
isFinite(null) // true
isFinite(-1) // true