== 和 === 有什么区别?

区别: 

== 只比较值,=== 比较类型和值。

  • == 是判断等于的意思,返回的是一个布尔值,如:alert(1 == 1);将返回true,因为1等于1,如果 alert(1 == '1');也返回true,虽说后面的1是字符串类型,但是==是不判断类型的,所以还是true,如果:alert(1 == '2')就是false了,因为1不等于2;
  • === 也是判断的,但是它要比==判断的严谨一点,它的判断必须什么都相等,比如说类型,值;如: alert(1 === 1);将返回true,因为它们都是1,而且都是数字类型,如果:alert(1 === '1');将返回false,因为前面的1是数字类型,后面的1是字符串类型。

总结:

  1. 在使用中尽量采用 === 判断,因为这样更严谨一些,当然有的时候你得用 == 了,这分情况,适当的运用。上面提到'1'是字符串类型,为什么呢?因为他外面加 引号 了,只要加引号就会是字符串类型,如果是数字类型可以直接写数字,如果:var a = b1;就会出错,因为如果 = 的右边没有加 引号,且还不是纯数字,它会认为你是变量,而其中b1变量又不存在就会报错,当然如果存在就没事。
  2. 如果数让字符串类型的1跟数字类型的1做算术是会报错的。如果 var a = '1',b = 2,c = a + b; 你必须得把a转成数字类型,上面提示你将字符串转成数字最快的方式就是让本身1,当然你必须确保里面没有字母,如 var a = '1',b = 2,c = a1 + b;
  3. 一般情况下,本身是等于本身的,比如alert(undefined===undefined);//true alert(1===1)//true ,有一个例外,它连自己都不等于自己,alert(NaN === NaN)不管你是 == 还是 === ,它都是false,这个是个特殊

小提示: 

其实 == 在判断的时候对数值做了 "隐式转换", 比如 0 == false 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让我打个盹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值