JS中有很多神奇的语法,非常让人迷惑。踩过这些坑可能会让人看不懂。今天我们就来说说[==]和[===]这两个问题。对于很多没有系统学习过前端开发的技术人员来说,这是很重要的一点。让我们把它画出来,让我们一起看看。(图片来自网络)请看题,下面执行的结果是什么?console.log([]==![]);很神奇吗?为什么会这样?先从==和===的特点说起。我们先来分析一下上面的等式:1.左边是一个数组,右边是一个表达式,左边是:[],右边是数组的反转![],所以是一个表达式,取反后得到false,所以这里可以把等式换成,相当于比较[]==false,console.log([]==false);说到这里,还是有点不合逻辑,我们继续拆分。分析:因为这里使用了双等号,左边是一个数组,右边是一个值,所以根据双等号的特点,需要将两边都转为原来的类型,和ToString用于转换,所以这里的显示是:我们继续替换等式console.log(''==false);执行后,结果是:true,是不是感觉有点疯狂。现在两边都是原始类型,但是类型还是不一样的。左边是字符串,右边是bool类型,所以这个==又要搞大事了。继续将两边都转换成数值类型。然后继续转:那么最终执行的表达式为:console.log(0==0);执行结果为:true;所以如果你需要在表达式中进行比较,尽量使用===,因为==在执行时很奇怪,再举个例子:console.log(true==[1]);魔法知识是不是又增长了!后续,我们将为大家带来更多有趣的内容介绍~延伸阅读解读商业智能的前世今生,嵌入式BI如何蓬勃发展?商业智能OEM包装数据可视化分析工具WIX如何在国内弯道超车?
