【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别

2023-06-07,,

视频链接:

JavaScript相等()和全等(=)运算符区别 - Web前端工程师面试题讲解

参考链接:

JavaScript == 与 === 区别

区别

对于string、number 等基础类型

不同类型的比较

相等(==)先转换成对应的类型后的值,再进行比较判断;
全等(===)则不会进行转换,而是直接返回不相等的结果
同类型比较
两个进行该类型的“值”的比较

对于 Array,Object 等高级类型

===== 没有区别,都会通过指针地址进行比较

//不同类型
console.log(6 == "6");
console.log(6 === "6");
//同一类型
console.log(6 == 6);
console.log(6 === 6);


布尔型 与 数值

//相等就把true变为1,false变为0
console.log(true == 1);
console.log(false == 0);
//全等不会把布尔型数值转换
console.log(true === 1);
console.log(false === 0);


未知类型 与 数值/未知类型

//一个字符串里只有空格或什么都没有就转换成 空
//而 0 默认转换成 空
console.log('' == 0);
console.log(' ' == 0);

//null表示空值,undefinded表示未声明/定义的变量
//它们都是假值,所以相等
console.log(null == undefined);
// null、undefined都是特殊值,不能转换成除自己以外的任何值
console.log(null == 0);
console.log(undefined == '');


字符串 与 布尔类型

//'false'字符串不会转换
//而 false则会因 相等 转变成 0
console.log('false' == false);
//但是字符串可以变为数值,前提当然是该字符串为 '0'
console.log('false' == 0);

? + 别的值

//NaN是连自己都不能识别的值,那么无论其他的这么样也都同一个结果
console.log(NaN == NaN);
console.log(NaN == false);
console.log(NaN === false);


对象之间

var a = {};//a创建了地址1
var b = {};//b创建了地址2
var c = a; //a辅值给c,那么c与a都会最终指向同一对象,也即c指向a
//a与b的地址不一致,所以都为false
console.log(a==b);
console.log(a===b);
//之前c指向a,c的地址就是a的地址,所以都为true
console.log(a==c);
console.log(a===c);

蛋老师的视频图解

【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别的相关教程结束。

《【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别.doc》

下载本文的Word格式文档,以方便收藏与打印。