大勇说:js中=和=的区别

在使用js的时候,我们会碰到:两个等号(==)和三个等号(===),那它们两个有什么区别呢?今天大勇就带小伙伴们一起来总结下。

1. "=="表示:“等同”的意思,如果两边值的类型不同的时候,会先进行类型转换,再做两边的数值比较。

2. "==="表示:“全等”的意思,"==="使用三个等号时,不需要做类型转换,不仅判断数值是否相等,还要判断两边值的类型是否一致。

下面我们直接通过写代码总结两者的判断规则差异:

===(全等)的判断规则:

(1)如果类型不同,就一定不相等

"text/javascript">

vara ="hello";

varb = 100;

alert(a === b);

(2)如果两个都是数值,并且是同一个值,那么相等;

"text/javascript">

vara =100;

varb = 100;

alert(a === b);

(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

"text/javascript">

vara =“hello”;

varb =“hello”;

alert(a === b);

(4)如果两个值都是true,或是false,那么相等

"text/javascript">

vara =false;

varb =false;

alert(a === b);

(5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等

"text/javascript">

vardate =newDate();

vara = date;

varb = date;

alert(a === b);

(6)如果两个值都是null,或是undefined,那么相等

"text/javascript">

vara =undefined;

varb =undefined;

alert(a === b);

==(等于)的判断规则:

(1)如果两个值类型相同,再进行三个等号(===)的比较

"text/javascript">

vara = 100;

varb = 100;

alert(a == b);

"text/javascript">

vara = 100;

varb = 200;

alert(a == b);

(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

a、如果一个是null,一个是undefined,那么相等

"text/javascript">

vara =null;

varb =undefined;

alert(a == b);

b、如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

"text/javascript">

vara ="123";

varb = 123;

alert(a == b);

"text/javascript">

vara ="123";

varb = 456;

alert(a == b);

小伙伴们一起动手试试吧~

本文作者 | 大勇

特别敬告 | 未经允许,请勿转载,版权所有,违者必究

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180512G1GFBA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券