`

全同运算符 "==="

    博客分类:
  • JS
 
阅读更多

在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()方法 ..doc

    ### Java中的比较运算符==与equals()方法 在Java编程语言中,经常需要对变量进行比较,这涉及到了两种常见的比较方式:`==`运算符和`equals()`方法。这两种方式有着本质的区别,并且适用于不同类型的数据。下面将...

    swift中自定义正则表达式运算符=~详解

    Swift 中自定义正则表达式运算符 =~ 详解 在 Swift 中,我们可以使用 NSRegularExpression 来实现正则表达式的匹配,但是 Swift 并没有在语言层面上支持正则表达式。这篇文章将为大家介绍如何在 Swift 中自定义正则...

    C语言各运算符优先级及函数大全

    赋值运算符包括赋值运算符=、除后赋值运算符/=、乘后赋值运算符*=、取模后赋值运算符%=、加后赋值运算符+=、减后赋值运算符-=、左移后赋值运算符<<=、右移后赋值运算符>>=、按位与后赋值运算符&=、按位异或后赋值...

    C#中的==运算符

    这是因为,Equals方法调用的是Object的Equals方法,而==运算符使用的是同一个对象的引用来比较。 现在,让我们来看一下在String类型中的==运算符。在String类型中,==运算符执行的结果与Equals方法的结果是一样的。...

    javascript运算符语法全面概述.docx

    6. 赋值运算符:包括赋值运算符=、加法赋值运算符+=、减法赋值运算符-=等,用于将值赋给变量。 7. 逗号运算符:包括逗号运算符,,用于将多个表达式连接成一个表达式。 二、javascript 运算符优先级 javascript ...

    C#基础:Equals()与运算符==的区别分析

    对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。==操作比较的是两...

    C++ 重载运算符+==-用于字符串的比较

    在C++编程语言中,重载运算符是一种强大的特性,允许我们为已有的运算符赋予新的含义,以适应特定的数据类型。在这个例子中,我们关注的是重载"=="和"!="运算符,以便用于字符串的比较。这在VS2010这样的开发环境中...

    C#编程基础运算符和特殊符号的使用

    * 且位运算符 &:两个数都转化成二进制后,再进行逐位对比运算,如果同位置值相同,则取 1,否则,取 0 * 或位运算符 |:两个数都转化成二进制后,再进行逐位对比运算,如果同位置值相同,则取 1,否则,取 0 关系...

    C语言运算符和表达式PPT学习教案.pptx

    * 等于运算符== * 不等于运算符!= * 大于运算符> * 小于运算符< * 大于或等于运算符>= * 小于或等于运算符<= 逻辑运算符是用来连接两个布尔表达式的,包括: * 与运算符&& * 或运算符|| * 非运算符! 位运算符是...

    C++实验5多态性(4学时)

    (1)定义Point类,有坐标_x,_y两个成员变量;...(3)对实验二中的people类重载“==”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。

    javascript相等运算符与等同运算符

    5. **对象**:两个对象只有在它们引用的是内存中的同一个对象时,`===`才认为它们相等。 ### 示例 考虑以下示例: ```javascript console.log(5 == '5'); // true,因为`==`会将字符串'5'转换为数字5 console.log...

    asp运算符图片运算符图片

    例如,加法运算符"+"用于将两个数值相加,减法运算符"-"用于做减法,乘法运算符"*"用于乘法,除法运算符"/"用于除法,以及取模运算符 "%"用于求余数。例如,`var result = 5 + 3;`将返回8。 2. **赋值运算符**:...

    C++运算符表格大全.pdf

    29. **赋值运算符=**:将右边的值赋给左边的变量,如`a = b`。 30. **除后赋值运算符/=,乘后赋值运算符*=,求余后赋值运算符%=,加后赋值运算符+=,减后赋值运算符-=,左移后赋值运算符<<=,右移后赋值运算符>>=,...

    set命令实例 运算符自增自减 +=、-=

    下面我们将深入探讨`set`命令的用法,以及在批处理中如何结合运算符`+=`和`-=`来实现计数功能。 首先,`set`命令的基本语法是`set 变量名=值`,例如`set password=123456`,这会创建或更新名为`password`的环境变量...

    C语言运算符的优先级

    C语言运算符的优先级 C语言运算符的优先级是C语言编程中非常重要的一个概念,它决定了在表达式中的运算符执行顺序。C语言运算符的优先级可以...需要注意的是,在同一个优先级的运算符中,运算次序由结合方向所决定。

    C语言运算符优先等级口诀

    小等大等、等等不等是第10级到第9级的运算符:<、<=、>和>=,等等指的是等于运算符==,不等指的是不等于运算符!=。这些运算符的优先级较低,通常在表达式中执行的较晚。 八位与,七位异,六位或是第8级到第6级的...

    Verilog HDL 运算符 优先级

    Verilog HDL 运算符优先级详解 Verilog HDL 是一种基于事件驱动的硬件描述语言,用于设计和验证数字电路。Verilog HDL 运算符优先级是指在 Verilog HDL 中各种运算符的执行顺序和优先级,了解运算符优先级对编写...

    C语言符号优先级.doc

    赋值运算符包括赋值运算符=、除后赋值运算符/=、乘后赋值运算符*=、余数后赋值运算符%=、加后赋值运算符+=、减后赋值运算符-=等。这些运算符的优先级相对较低,总是被第十三个执行。 第十四和十五优先级:逗号...

    ==运算符和Equals()方法区别

    只有当`p3`和`p4`是同一个对象的引用时,`==`运算符和`Equals()`方法的比较结果才都是`true`。 字符串是一个特殊的引用类型,在C#语言中,重载了字符串对象的很多方法,包括`Equals()`方法,使字符串对象用起来就像...

Global site tag (gtag.js) - Google Analytics