一 Number()转换规则
- true转化为1,false转化为0
- 数值的话直接返回
- null 返回0
- undefined 返回NaN 如果是字符串的话应用一下规则
- 字符串只包含数值字符和'+','-'号,则转换为十进制数值
- 字符串包含浮点值,则转化为相应的浮点值
- 字符串包含有效16进制格式,则转换为相应十进制数值
- 空字符串返回0
- 其他情况返回NaN 如果是对象的话调用valueOf方法,按照以上规则进行转换返回的值,如果转换结果是NaN,则调用toString()方法,再按照转换字符串的规则转换.
Number(true) 1
Number(false) 0
Number(123) 123
Number("123") 123
Number(null) 0
Number(undefined) NaN
Number("") 0
Number("+123") 123
Number("-123") -123
Number("0xff") 255
Number("-0xff") NaN
Number([]) 0
转换对象的时候会隐式调用valueOf方法,重写valueOf方法使其返回字符串
let a = {
name: "sun",
valueOf() {
return "2313"
}
}
Number(a) 2313
parseInt可以用来得到整数,它可以从字符串中取得整数 它从一个非空格的字符开始转换,如果第一个不是数值字符或者不是'+','-'号,就直接返回NaN,如果是第一个字符是数值字符或者'+','-'号,就继续向下进行转换,直到找到不是数值字符的字符.
parseInt("123sun") 123
parseInt("0xff") 255
parseInt("-0xff") -255
parseInt可以用来截取数字和字符串相邻的字符串,得到前面的数值.