JavaScript 基础篇 - 关于 == 和 ===

很多人在刚开始学习JavaScript的时候,应该都很惊讶得发现竟然还有 === 这种操作符。

 

在JavaScript中的确存在 == 和 === 两种比较操作符,它们的区别是:

  == 要先转换需要比较的两个操作数,然后在进行比较;

  === 不进行任何转换,直接进行比较;

 

说通俗点就是:用 == 进行比较的两个操作数,只要值相等,类型不等都会返回 true;而 === 要求类型和值都相等才会返回 ture;

 

在用 == 进行比较的时候,转化规则如下:

  true会转化成1,false转化成0;

  如果是字符串和数值进行比较,字符串会转化成数值;

  如果其中一个是对象,会默认调用对象的valueOf方法取出其原始值;

  null == undefined 得到的结果是ture;

  如果一个操作数是NaN,那么始终返回false,因为根据ECMA标准,NaN不等于任何值和对象,包括它自己,就是说即使用 NaN == NaN 也是返回false;

  如果两个操作数都是对象,那么判断这两个对象是否指向同一个对象,是返回true,否则返回false(因为JavaScript中的对象都是引用传递,并且属于共享对象的方式,所以两个指向同一个对象的变量实际是共享同一个对象的地址);

转载于:https://www.cnblogs.com/iRidescent-ZONE/archive/2012/06/11/2545678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值