类型转换
先梳理一下es6之前有五种基本数据类型:Null
、Undefined
、String
、Number 、Boolean
布尔类型转换规则
- 直观上为空的值(0、空字符串、
null
、undefined
、和NaN)将变为false
注意 :包含
"0"
为true
console.log(Boolean("")); //false
console.log(Boolean(0));
console.log(Boolean(undefined));
console.log(Boolean(null));
console.log(Boolean(NaN));
console.log(Boolean());
console.log(Boolean(false));
console.log(Boolean("0"))//true
开发过程中可能会遇见下面的这种情况,见下图:
这里解决方法就是让后台同学清除一下数据就好…,那我们看看如果用JavaScript
是怎么做的 看下面代码:
const arr = [null,null,null,"",1,2,undefined,0,false,NaN].filter(Boolean)//[1,2]
//等同于
filter((x=>{return Boolean(x)})
数字类型转换规则
undefined
变成NAN
null
变成 0true
和false
变成 1 and 0string
:去掉首尾空格的纯数字数字字符串中含有的数字、如果剩余字符串为空,则转换结果为零,否则将从剩余字符串中读取数字,当类型出现error返回NaN
console.log(Number(null)) // 0
console.log(Number("123x")) //NaN
console.log(Number(false)) // 0
console.log(Number(undefined)) // NaN
console.log(Number(" 23 "));
字符串转换规则
null
转换为'null'
undefined
转换为'undefined'
true
转换为'true'
,false
为'false'
console.log(String(null));//'null'
console.log(String(undefined));//'undefined'
console.log(String(true));//'true'
console.log(String(false));// 'false'
暂时记录这些吧…