来公司数月,今日得闲,突然想到面试时的一道面试题,其实也是面试经常会问到的:
“说一下两个等号和三个等号的区别”
那我们先来试一下

这样看来,字符串和字符串(相同数据类型下),'=='和'==='是没有区别的;
那么我们换一个写法

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


布尔值和数组比较

记得js刚入门时,显式数据类型的转换已经蒙了,更别说是隐式转换。
综上所述,数据类型转换顺序
对象——字符串
数字——字符串
布尔——数字
'!='和'!=='也是一样会进行隐式转换

null和undefined比较呢?

null和undefined之间比较可以转为ture
但是和其他数据类型比较 都是false


[完]
814

被折叠的 条评论
为什么被折叠?



