中易网

JavaScript里面三个等号和两个等号的区别

答案:2  悬赏:60  
解决时间 2021-02-23 13:08
JavaScript里面三个等号和两个等号的区别
最佳答案
== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
==,不做类型转换,类型不同的一定不等。

下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。 js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻 烦,我也不大懂)
e、任何其他组合,都[不相等]。

举例:
"1" == true
类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

= 赋值运算符
== 等于
=== 严格等于
例:
var a = 3;
var b = "3";

a==b 返回 true
a===b 返回 false

因为a,b的类型不一样
===用来进行严格的比较判断
全部回答
两个等是 值相等,三个等 是值和类型都一样
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
原香小镇的位置在哪?
匈牙利留学
加密wifi如何解锁
我买了个菩提子才玩几天,颜色变成了灰蓝色
重庆碗碗香面馆怎么去啊,有知道地址的么
20元交通意外险和30交通意外险区别
建始县民族实验初级中学在哪里啊,我有事要去
张靓颖签约环球是不是代表她要离开中国,到国
小纬四路这个地址在什么地方,我要处理点事
价格千分位应该打在第三位还是第四位
星期日,我和妈妈参观了泰山。(改病句)
中牟有哪些旅行社
王琴芳牙科诊所我想知道这个在什么地方
淘宝店铺优惠券 不小心点击结束了 怎样可以是
佳莱士黄焖鸡米饭旗舰店地址在什么地方,想过
推荐资讯
卓尚这个地址在什么地方,我要处理点事
形容形状的词还有什么?
梦见自己被人打受不了杀了他
如何选择篮球鞋,什么底适合在水泥地上打球
人为什么会有感情这种东西
以李健我爱你开始的藏头诗
名流电脑地址有知道的么?有点事想过去
重庆临江门附近哪里有跳国标舞的地方
我跟一女生聊天感觉自己聊得都是废话,怎么就
劳动合同里面有一条写着,为乙方提供甲方同职
哪里能够找到教师资格证培训的视频?
青岛有教唱歌的地方么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?