JavaScript相等与全等区别

        相等和全等运算符是用来比较两个操作符是否相等的意思;就是相等运算符会进行类型的转换,而全等运算符不会进行类型的转换;

比如:

       相等由双等号( = = )表示,当两个运算数相等时,它就会返回true;为确定两个运算数是否相等时,这两个运算符都会进行类型转换;

       全等号由三个等号表示( === ),只有在无需类型转换运算数就相等的情况下,才会返回true;列如:

        在这段代码中,第一个 console.log使用等号来比较字符串 "66" 和数字 66,输出 "true"。如前所述,这是因为字符串 "66" 将被转换成数字 66,,然后才与另一个数字 66 进行比较。第二个 console.log 使用全等号在没有类型转换的情况下比较字符串和数字,当然,字符串不等于数字,所以输出 "false"。控制台图如下:

再看:

        第一行和第二行的6和6 肯定是相等的,为true;第三个虽然左边是数字类型,右边是字符类型,但是JavaScript会自动进行类型的转换,让它们都是同一类型,这样子两者就相等了为true;第四个两者类型都不一样,就不可能全等为false;

再看:

        第一和第二个是布尔值常常把true转换为1,false为0,就很明显了;

        第三和第四个全等,类型都不一样,自然不等了;

再如:

        0表示空,或者字符串里什么都没有,再字符串里只有空格,那么它们都属于空的,所以第一、第二个为true;null表示空值,undefined表示未声明的变量或没有赋值的变量,两者都是假值,所以为true;它们两个除了自身的值,不等于任何值,所以第四和第五个为false;

最后再看一个:

        在使用操作符的时候对于引用类型的数据,比较的是地址而不是真实的值,这里对象就属于引用类型,看a和b是保存在堆里面的对象,但是它们赋值不一样为false;c在栈里,而c也就是栈引用a堆里,因此a和c都在引用同一对象,所以它们为true;

 

 

 

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值