博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS相等运算符(==)和等同运算符(===)
阅读量:5035 次
发布时间:2019-06-12

本文共 884 字,大约阅读时间需要 2 分钟。

相等运算符(==)和等同运算符(===)
===运算符是等同运算符,它采用严格的同一性定义检测两个运算数是否完全等同。==运算符是相等运算符,它采用比较宽松的同一性定义(即允许进行类型转换)检测两个运算数是否相等。
下面的规则用于判定===运算符比较的两个值是否完全相等:
1.如果两个值的类型不同,它们就不相同。
2.如果两个值的类型是数字,而且值相同,那么除非其中一个或者两个都是NaN(这种情况它们不是等同的),否则他们是等同的。值NaN永远不会与其他的任何值等同,包括它自身。
3.如果两个值都是字符串,而且在串中的同一位置上的字符完全相同,那么它们就完全等同。如果字符串的长度或内容不同,它们就不是等同的。
4.如果两个值都是布尔值true,或者两个值都是布尔值false,那么它们等同。
5.如果两个值引用的是同一个对象,数组或函数,那么它们完全等同。如果它们引用的是不同的对象(数组或函数),它们就不完全等同,即使这两个对象具有完全相同的属性或两个数组具有完全相同的元素。
6.如果两个值都是null或都是undefined,它们完全相同。
下面的规则用于判定==运算符比较的两个值是否相等:
1.如果两个值具有相同的类型,那么就检测它们的等同性。如果这两个值完全相同,它们就相等。如果它们不完全相同,则它们不相等。
2.如果两个值的类型不同,它们仍然可能相等。用下面的规则和类型转换来检测它们的相等性:
   2.1 如果一个值是null,另一个值是undefined,它们相等。
   2.2 如果一个值是数字,另一个值是字符串,把字符串转换为数字,再用转换后的值进行比较。
   2.3 如果一个值是true,将它转换成1,再进行比较。如果一个值为false,把它转换成0,再进行比较。
   2.4 如果一个值是对象,另一个值是数字或者字符串,将对象转换成原始类型的值,再进行比较。
   2.5 其他的数值组合是不相等的。

转载于:https://www.cnblogs.com/chenping-987123/archive/2012/09/07/2674696.html

你可能感兴趣的文章
团队项目之需求规格说明书
查看>>
【转】令人印象深刻的廣告詞
查看>>
4/7 第4篇const int * pi/int * const pi的区别
查看>>
POJ 3468 A Simple Problem with Integers
查看>>
网站搭建 (第05天) 分类和归档
查看>>
显示当前数据库中存在的表
查看>>
BZOJ-1833(数位DP)
查看>>
单选RadioButton与复选CheckBox按钮
查看>>
导入android-support-v4.jar的方法
查看>>
open random
查看>>
nodejs中req.body对请求参数的解析问题
查看>>
javascript 快速排序方法
查看>>
项目告一段落
查看>>
第八章 子程序
查看>>
LINUX kswapd和pdflush进程的含义
查看>>
【转】【整理】将Linux脚本中的正常输出,警告,错误等信息输出到文件中
查看>>
node操作mongdb的常用函数示例
查看>>
数学中余弦定理在搜索中的分类应用——新闻的分类
查看>>
操作系统 chapter2 操作系统运行环境
查看>>
DecimalFormat用法
查看>>