js的 == 和 ===的区别
1、对于string,number等基础类型,==和===是有区别的
不同类型间比较,==之比较转化成同一类型后的值看值是否相等,===如果类型不同,其结果就是不等,同类型比较,直接进行“值”比较,两者结果一样
function test(){ //string == number 值得比较 if('1'==1){ console.log('string == number is true'); } //string === number 类型先比较,后值比较 if('1' === 1){ console.log('1') }else{ console.log('2') } if(1===1){ console.log('3'); } //输出 //string == number is true //2 //3 }
2、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
3、基础类型与高级类型,==和===是有区别的
对于==,将高级转化为基础类型,进行“值”比较,因为类型不同,===结果为false