首先,== 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的类型不一样
===用来进行严格的比较判断
简洁一点,一个是略等(类型转换成布尔后值相等),一个是全等(类型,值相等)
分享到:
相关推荐
这两个运算符虽然看似相似,但它们在比较值时却有着本质的区别。了解它们的不同用法,对于编写高质量的JavaScript代码至关重要。 双等号“==”是JavaScript中的相等运算符,它用于比较两个值是否在逻辑上相等,但...
下面将详细解析"一个等号"、"两个等号"和"三个等号"的区别。 1. **一个等号 (=)**: - **赋值操作符**:在JavaScript中,单个等号 (=) 用于赋值操作。当你在变量前使用它时,你会将右侧的表达式结果赋值给左侧的...
在JavaScript中,`==` 和 `===` 是两种不同的比较操作符,它们在进行值比较时遵循不同的规则,理解这两个操作符的区别对于编写高质量的JavaScript代码至关重要。 `===`,称为严格相等比较,它在比较两个值时不仅...
JavaScript 中有两个等号(==)和三个等号(===)两种等号运算符,它们的区别在于: * 两个等号(==)运算符:比较两个操作数是否相等,进行隐式类型转换。 * 三个等号(===)运算符:比较两个操作数是否完全相等,...
而两个等号“==”是抽象相等操作符,三个等号“===”则是严格相等操作符。二者的区别在于它们比较变量值时所遵循的规则。 两个等号“==”用于比较操作时,会进行类型转换,即先将操作数转换成相同类型,然后再进行...
三个等号代表比较对象的类型也要一致。两个等号表示只要值相等就满足条件。 再来补充一些:$a=’2′;//字符型2$b=2;//数值型2$a==$b,是对的,都是2$a===$b,是不对的,因为$a是字符型$b是数值型,值虽一样,但类型不...
一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。 === 判断规则 如果类型不同,就[不相等] 如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一...
举个简单的例子,双等号不是全等号,全等号是“===”三个等号,语句”1″==1,那么一般情况下是前面的字符串”1“转换为数字1,然后进行比较。通过这个例子应该了解了什么是隐性类型的转换了吧! 隐性类型转换步骤 ...
根据给定文件的信息,本文将详细解析如何在汇编语言环境下实现两个多位十进制数的相加操作。本例中的关键在于理解ASCII码表示的十进制数、加法运算以及结果的处理。 ### 一、问题背景 在计算机编程中,经常需要对...
JavaScript中的等号运算符用于比较两个值是否相等。等号运算符由双等号(==)表示,在JavaScript中,当两个运算数在比较时值相等,它返回true。但是,JavaScript的等号运算符在比较时会涉及数据类型转换的特殊规则,...
在使用前,用户需要确保已经下载了完整的两个压缩包,并按照正确的顺序解压。这是因为文件分成了两部分上传,不完整可能造成解压失败或软件运行异常。在解压完成后,用户需要替换原有的Eclipse安装目录中的相应文件...
在第11页,4>2和4这两个例子进一步巩固了大于号和小于号的使用,让孩子练习比较两个数字的大小。第12页的和>=符号则引出了不等式的全等和不全等的概念。 6. **实践应用**: 第15页的活动要求学生画出与三角形(△...
这两个运算符在进行比较时有着本质的区别。理解这些区别对于编写可预测且健壮的代码至关重要。 双等号(==)被称为松散比较运算符。当双等号用于比较两个值时,它会尝试将值转换为相同的类型,然后再进行比较。转换...