在JavaScript中,"==="是全同运算符,只有当值相等,数据类型也相等时才成立。
等同运算符的比较规则:
当两个运算数的类型不同时:将他们转换成相同的类型。
1)一个数字与一个字符串,字符串转换成数字之后,进行比较。
2)true转换为1、false转换为0,进行比较。
3)一个对象、数组、函数与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString)
4)其他类型的组合不相等。
想两个运算数类型相同,或转换成相同类型后:
1)2个字符串:同一位置上的字符相等,2个字符串就相同。
2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。
3)2个都是true,或者2个都是false,则相同。
4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。
5)2个null,或者2个都是未定义的,那么他们相等。
而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。
例如:null==undefined 会返回真, 但是null===undefined 就会返回假!
分享到:
相关推荐
### Java中的比较运算符==与equals()方法 在Java编程语言中,经常需要对变量进行比较,这涉及到了两种常见的比较方式:`==`运算符和`equals()`方法。这两种方式有着本质的区别,并且适用于不同类型的数据。下面将...
Swift 中自定义正则表达式运算符 =~ 详解 在 Swift 中,我们可以使用 NSRegularExpression 来实现正则表达式的匹配,但是 Swift 并没有在语言层面上支持正则表达式。这篇文章将为大家介绍如何在 Swift 中自定义正则...
赋值运算符包括赋值运算符=、除后赋值运算符/=、乘后赋值运算符*=、取模后赋值运算符%=、加后赋值运算符+=、减后赋值运算符-=、左移后赋值运算符<<=、右移后赋值运算符>>=、按位与后赋值运算符&=、按位异或后赋值...
这是因为,Equals方法调用的是Object的Equals方法,而==运算符使用的是同一个对象的引用来比较。 现在,让我们来看一下在String类型中的==运算符。在String类型中,==运算符执行的结果与Equals方法的结果是一样的。...
6. 赋值运算符:包括赋值运算符=、加法赋值运算符+=、减法赋值运算符-=等,用于将值赋给变量。 7. 逗号运算符:包括逗号运算符,,用于将多个表达式连接成一个表达式。 二、javascript 运算符优先级 javascript ...
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。==操作比较的是两...
在C++编程语言中,重载运算符是一种强大的特性,允许我们为已有的运算符赋予新的含义,以适应特定的数据类型。在这个例子中,我们关注的是重载"=="和"!="运算符,以便用于字符串的比较。这在VS2010这样的开发环境中...
* 且位运算符 &:两个数都转化成二进制后,再进行逐位对比运算,如果同位置值相同,则取 1,否则,取 0 * 或位运算符 |:两个数都转化成二进制后,再进行逐位对比运算,如果同位置值相同,则取 1,否则,取 0 关系...
* 等于运算符== * 不等于运算符!= * 大于运算符> * 小于运算符< * 大于或等于运算符>= * 小于或等于运算符<= 逻辑运算符是用来连接两个布尔表达式的,包括: * 与运算符&& * 或运算符|| * 非运算符! 位运算符是...
(1)定义Point类,有坐标_x,_y两个成员变量;...(3)对实验二中的people类重载“==”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。
5. **对象**:两个对象只有在它们引用的是内存中的同一个对象时,`===`才认为它们相等。 ### 示例 考虑以下示例: ```javascript console.log(5 == '5'); // true,因为`==`会将字符串'5'转换为数字5 console.log...
例如,加法运算符"+"用于将两个数值相加,减法运算符"-"用于做减法,乘法运算符"*"用于乘法,除法运算符"/"用于除法,以及取模运算符 "%"用于求余数。例如,`var result = 5 + 3;`将返回8。 2. **赋值运算符**:...
29. **赋值运算符=**:将右边的值赋给左边的变量,如`a = b`。 30. **除后赋值运算符/=,乘后赋值运算符*=,求余后赋值运算符%=,加后赋值运算符+=,减后赋值运算符-=,左移后赋值运算符<<=,右移后赋值运算符>>=,...
下面我们将深入探讨`set`命令的用法,以及在批处理中如何结合运算符`+=`和`-=`来实现计数功能。 首先,`set`命令的基本语法是`set 变量名=值`,例如`set password=123456`,这会创建或更新名为`password`的环境变量...
C语言运算符的优先级 C语言运算符的优先级是C语言编程中非常重要的一个概念,它决定了在表达式中的运算符执行顺序。C语言运算符的优先级可以...需要注意的是,在同一个优先级的运算符中,运算次序由结合方向所决定。
小等大等、等等不等是第10级到第9级的运算符:<、<=、>和>=,等等指的是等于运算符==,不等指的是不等于运算符!=。这些运算符的优先级较低,通常在表达式中执行的较晚。 八位与,七位异,六位或是第8级到第6级的...
Verilog HDL 运算符优先级详解 Verilog HDL 是一种基于事件驱动的硬件描述语言,用于设计和验证数字电路。Verilog HDL 运算符优先级是指在 Verilog HDL 中各种运算符的执行顺序和优先级,了解运算符优先级对编写...
赋值运算符包括赋值运算符=、除后赋值运算符/=、乘后赋值运算符*=、余数后赋值运算符%=、加后赋值运算符+=、减后赋值运算符-=等。这些运算符的优先级相对较低,总是被第十三个执行。 第十四和十五优先级:逗号...
只有当`p3`和`p4`是同一个对象的引用时,`==`运算符和`Equals()`方法的比较结果才都是`true`。 字符串是一个特殊的引用类型,在C#语言中,重载了字符串对象的很多方法,包括`Equals()`方法,使字符串对象用起来就像...