来公司数月,今日得闲,突然想到面试时的一道面试题,其实也是面试经常会问到的:
“说一下两个等号和三个等号的区别”
那我们先来试一下
这样看来,字符串和字符串(相同数据类型下),'=='和'==='是没有区别的;
那么我们换一个写法
字符串和数(不同数据类型下),就能看出'=='和'==='的区别,这就引申出一个问题,javascript数据类型的隐式转换,数字和字符串相比,首先把数字转为字符串,再将两个字符串进行比较
数组和字符串的比较,空数组被转成空字符串,非空数组将内容转换成字符串
布尔值和数组比较
记得js刚入门时,显式数据类型的转换已经蒙了,更别说是隐式转换。
综上所述,数据类型转换顺序
对象——字符串
数字——字符串
布尔——数字
'!='和'!=='也是一样会进行隐式转换
null和undefined比较呢?
null和undefined之间比较可以转为ture
但是和其他数据类型比较 都是false
[完]