number类型
包含正数、负数、0、NaN、Infinity。注意NaN与任何东西都不相等,包括它自己。
其他类型转化为number
使用构造函数的方法转换
字符串转数字:只有都是有效数字才能成功转换,否则结果为NaN;空字符串==0
布尔转数字:true==1,false==0
空转数字:null==0,undefined=>NaN
Symbol转数字:报错
普通对象转数字:过程是先 对象.toString(),再转为数字。结果为NaN
-
数组对象转数字:先toString(),如果只有一个元素且元素为空、null、数字、undefined,才能转化为数字,其他为NaN。
因为
[1,2,3,4,5].toString() = '1,2,3,4,5'//先toString() +'1,2,3,4,5' = NaN //再转数字 ```
函数转对象:过程是先 函数.toString(),再转为数字。结果为NaN
image-20200929152148625.png
使用parseInt([value])转换
parseInt(a):把字符串类型转换为数字类型。在字符串最左边开始找,把找到的有效数字转化为数字,直到遇到非有效数字符号为止。
parseInt('123.12wqewzf');//123
parseInt('qq123wwzf');//NaN
parseInt([1.3, 2.3, 3]);//1
parseInt({1:1});//NaN
parseInt(a,b):把a看成是b的进制数。b取值[2,36],其他会输出NaN
parseInt(1011,2)//11=1011的二进制
parseInt(1011,10)//1011=1011的十进制
parseInt(101,2)==parseInt(1012,2)//true,读到超出进制的数就停止转换并输出,(2超出二进制)
parseFloat:比parseInt多识别一个小数点
parseFloat('123.12wqewzf');//123.12
parseFloat([1.3, 2.3, 3]);//1.3
toFixed()
123.123456789.toFixed(3);//123.123
保留n位小数