在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 就会返回假!
分享到:
相关推荐
知识点 比较运算符==和equals方法的比较 知识点 比较运算符==和equals方法的比较
java中的比较运算符== 与 equals()方法 值类型、引用类型
主要给大家介绍了关于swift中自定义正则表达式运算符=~的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
本篇文章是对c#中的Equals()与运算符==的区别进行了详细的分析介绍,需要的朋友参考下
C语言中运算符的优先级和结合律......
c++ demo,运算符重载,成员函数的实现
(1)定义Point类,有坐标_x,_y两个成员变量;...(3)对实验二中的people类重载“==”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。
自己做的小型分数运算器 实现了运算符的重载。
C++类的运算符重载,包括 = ++ -- -(负号运算符) + - * / % == != < > <= >= << >>
==运算符与基元类型 ==运算符与引用类型 ==运算符与String类型 ==运算符与值类型 ==运算符与泛型 ==运算符与基元类型 我们分别用两种方式比较两个整数,第一个使用的是Equals(int)方法,每二个使用的是==...
本章节我们将为大家详细介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符及其他运算符。 算术运算符 以下表格列出了 Swift 语言支持的算术运算符,其中变量 A 为 10,变量 B 为 20: 运算符 描述 ...
VBA语言基础,定义:运算符是代表VB某种运算功能的符号。 1)赋值运算符 = 2)数学运算符 &、+ (字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数) 3)逻辑运算符Not...
运算符+ - * / % ++ -- 关系运算符>,<,>=,<=,==,!= 逻辑运算符&&与 ||或 !非 赋值运算符=、+=、-=、*=、/=、%= 三目(三元)运算符 格式:判断条件 ? "正确输出" : "错误输出
C++ ,VS2010平台编辑,下载后可以直接使用,模拟打分及求平均分的过程
复数类 (包括运算符重载)
运算符图片运算符图片运算符图片运算符图片
dC语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表
定义复数类Complex,实现复数的+、-、*、/数学运算,=、+=、-=、*=、/=赋值计算,++a、a++、--a、a—自增自减,==、!=关系运算
1. 赋值运算符:包括常见的赋值符号“=”,以及复合赋值运算符如“+=”、“-=”、“*=”、“/=”、“%=”、“&=”、“|=”、“^=”、“<<=”、“>>=”等。这些运算符用于将一个值赋给变量,或者将一个表达式的值赋给...