JS语法中的'=='和'==='和'!='和'!=='

来公司数月,今日得闲,突然想到面试时的一道面试题,其实也是面试经常会问到的:

“说一下两个等号和三个等号的区别”

那我们先来试一下

JS语法中的'=='和'==='和'!='和'!=='_第1张图片

这样看来,字符串和字符串(相同数据类型下),'=='和'==='是没有区别的;

那么我们换一个写法

字符串和数(不同数据类型下),就能看出'=='和'==='的区别,这就引申出一个问题,javascript数据类型的隐式转换,数字和字符串相比,首先把数字转为字符串,再将两个字符串进行比较

数组和字符串的比较,空数组被转成空字符串,非空数组将内容转换成字符串

JS语法中的'=='和'==='和'!='和'!=='_第2张图片

布尔值和数组比较

记得js刚入门时,显式数据类型的转换已经蒙了,更别说是隐式转换。

综上所述,数据类型转换顺序

对象——字符串

数字——字符串

布尔——数字

'!='和'!=='也是一样会进行隐式转换

null和undefined比较呢?

JS语法中的'=='和'==='和'!='和'!=='_第3张图片

null和undefined之间比较可以转为ture

但是和其他数据类型比较 都是false

JS语法中的'=='和'==='和'!='和'!=='_第4张图片

JS语法中的'=='和'==='和'!='和'!=='_第5张图片

[完]

 

你可能感兴趣的:(前端特效)