开发中常见数据类型转换的坑~~

80 阅读1分钟

一.特殊类型的隐式转换

NAN,0,undefined,null,"" => false true
特殊类型的隐式转换就是当遇到这五种类型时Boolean()会默认隐式转换为false

二.逻辑运算符&&和||在隐式类型转换下的情况

console.log(true && true)  //true 
console.log(true || true)  //false
console.log(5 || 0)  //true false  //返回true则返回5
console.log(0 || 5)  //false true  //返回true则返回5
//将0隐式转换为false 
console.log(0 && 5)  //false true  //返回false则返回0
console.log(5 && 0)  //true false  //返回false则返回0

三.==和===的区别

console.log(undefined == null) //true 
console.log(undefined === null) //false
==:是对比值之间的关系,在对比的时候会进行隐式转换
    undefined会转换成0null也会转换成0,故0==0true 
===:不会做隐式转换,值相等且类型相等才是相等的
    undefined的类型是undefinednull的类型时object,故为false
建议严格按照规范使用===