js中数据类型的转换(Number、String、Boolean)
数据类型的转换
其他数据类型转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
);
还没有评论,来说两句吧...