JavaScript中的==与===的区别

    xiaoxiao2021-03-25  128

    先看一个例子

    alert(0 == "");

    运行结果是啥?

    回答是0==的同学真心可以洗洗睡了…

    回答是false的同学还是很有必要继续读下去的…

    答案是true,注意不是'true'也不是"true"。

    OK,为啥呢,很简单,JS中==会先转换类型,然后再判断值是否相等。

    刚刚那个"“是字符串类型,而0是数字类型,所以先把”“转换为数字类型,正好”"对应的数字类型为0,所以左右相等了,所以结果为true。

    以下的情况也都是true,因为在判断之前先转换了类型。

    0 == "" 0 == false "" == false 1 == "1" "1"==true

    OK,那么有时候啊,这种逻辑其实不大对。空字符串跟假有什么关系呢?这种运算符也太不严谨了,哈哈,没关系哦,JavaScript中还有一个强大的运算符**=,强大之处在于,===先判断类型是否一样,如果两边类型不同,直接就返回false,如果类型相同的情况,在去判断值,所以在大多数情况下,===才是我们想要的那个等于**。

    例如:

    1 == "1" // 判断结果为真 1 === "1"// 判断结果为假,因为一上来,类型就不同

    所以需要对JavaScript类型加以了解,就能准确的判断到底是真,还是假。


    如有问题请扫码联系我

    转载请注明原文地址: https://ju.6miu.com/read-20071.html

    最新回复(0)