number 字符串转化数值类型
1:字符串为非数字是;转化结果为NaN
2:当string 为 数字时候;转化结果为该数字
3:当string 为空串时候;转化结果为0
4:当string 为0xf 转化结果为10进制整数
布尔类型转化为数值型
true 转化结果 1
false 转化结果 0
var str = '我是'
var num = Number(str);
console.log(num) // nan
var str2 = '11'
var num2 = Number(str2)
console.log(num2) //数字11
var num2 = Number('0x1a5')
console.log(num2) //10进制整数
var num3 = Number('')
console.log(num3)//转化结果为0
var boolNum = Number(true);
console.log(boolNum) //1
var boolNum2 = Number(false)
console.log(boolNum2,'bool') //0
Number()函数的转换规则:
如果是Boolean值,true和false将分别转换成0和1
如果是数字,只是简单的传入和返回
如果是null,返回0
如果是undefined,返回NaN
如果是NaN,返回NaN
如果是字符串,则
如果字符串中只包含数字(包括前面带正号或负号的情况),则将其装换成对应的十进制数字
如果字符串中包含浮点格式的数字,转换成对应的浮点数
如果字符串中包含十六进制0xf,则会转换为相同大小的十进制数值即15
如果字符串 是空的(不包含任何字符),则将其转换成0
如果字符串中包含除了上述格式之外的字符,则将其转换为NaN
如果是对象,则调用对象的valueOf()方法,然后依照前面的规则返回的值,如果转换
的结果是NaN,则调用对象的toString()方法,然后再按照前面的规则转换返回的字符串的值
例:
console.log(Number(true)); //1
console.log(Number(2)); //2
console.log(Number(null)); //0
console.log(Number(undefined)); //NaN
console.log(Number(NaN)); //NaN
console.log(Number('')); //0
console.log(Number(' ')); //0
console.log(Number('2')); //2
console.log(Number('02')); //2
console.log(Number('020')); //20
console.log(Number('0xf')); //15
console.log(Number('2a')); //NaN
console.log(Number('a2')); //NaN
console.log(Number('bule')); //NaN
console.log(Number(null)); //0