数据类型的转换
其他数据类型转Number
-
undefined转Number为NaN
-
null转Number为0
-
布尔值------ true为1,false为0
-
字符串
- 空字符串,空格字符串转为0
- 非空字符串,并且内容为纯数字(包含进制与科学表示法)转成对应的数字
- 其余都是NaN
-
数字 ----- 原来的数字
-
对象
- 对象、函数转为NaN
- 空数组转为0,数组里只有一个数据并且这个数据能转成数字,则转成对应的数字,其它都转成NaN
console.log(
Number(undefined), //NaN
Number(null), //0
Number(true), //1
Number(false), //0
Number(''), //0
Number(' '), //0
Number('12'), //12
Number('012'), //12
Number('0xff90'), //65424--16进制
Number('5e5'), //500000--科学计数法
Number('k'), //NaN
Number({}), //NaN
Number([]), //0
Number(function(){}), //NaN
Number(['']), //0
Number([2]), //2
Number(['2']), //2
Number([2,3]), //NaN
);
其他数据类型转String
-
基本数据类型、null、undefined的结果就是给数据加上引号变成字符串
-
对象
-
数组的结果为把所有中括号去掉,外面加个引号
-
对象的结果为’[object Object]’
-
函数的结果为在函数整体外面加个引号
-
console.log(
String(null), //'null'
String([1,[2]]), //'1,2'
String(function(){}), //'function(){}'
String({}), //'[object Object]'
);
其他数据类型转Boolean
-
undefined转Boolean为false
-
null 转Boolean为false
-
数字----- +0、-0、NaN转布尔值的结果为false,其它的转布尔值的结果为true
-
布尔值转为对应的值
-
字符串------空字符串转布尔值的结果为false,其它(包括空格字符串)的都转成true
-
对象转布尔值都是true
console.log(
Boolean(''), //false
Boolean(' '), //true
Boolean('0'), //true
Boolean(undefined), //false
Boolean(null), //false
Boolean(-0), //false
Boolean({}), //true
Boolean([]), //true
);