JavaScript中的操作符==与===介绍


Posted in Javascript onDecember 31, 2014

JavaScript中,==与===操作符均可用于判断两个值是否相等;不同之处在于,如果进行判断的两个值类型不一致,===操作符会直接返回false,而==操作符则会在类型转换后再进行判断。详细的判断规则如下:

===操作符的判断规则

1.如果两个值的类型不一致,返回false。
2.如果两个值的类型一致,值一致,返回true。NaN是一个特例,NaN===NaN返回false。
3.如果两个值均为object类型,那么与Java一样,除非两者引用一致(reference指向同一个对象地址),不然即使object中的内容完全一样,也认为这两个值不一致,相应的操作将返回false。比如,新建两个内容完全一样的数组,对它们进行===操作后返回结果为false — 虽然它们的内容完全一样,但还是属于两个不同的对象。
4.0===-0返回true。

==操作符的判断规则

==操作符会将值进行类型转换后再进行比较,其类型转换遵循以下原则:优先转换成number后进行比较,Date对象则优先转换成string后进行比较。具体判断规则如下:

1.如果两个值类型一致,执行===操作后返回。
2.null==undefined为true。
3.true将转换成1后进行比较,false将转换成0后进行比较。
4.如果其中一个值为对象,则将其转换成number后再进行比较,Date对象除外。
5.如果其中一个值为Date对象,则将其转换成string后再进行比较。

实验

console.log("3" === 3);//false

console.log(NaN === NaN);//false

var a = {x:1, y:2};

var b = {x:1, y:2};

var c = a;

console.log(a === b);//false

console.log(a === c);//true

console.log(0 === -0);//true
console.log("3" == 3);//true

console.log(null == undefined);//true

console.log(true == 1);//true

console.log(true == 9);//false
console.log([9] == 9);//true

console.log([9] == "9");//true
var d = new Date();

var s = d.toString();

var n = d.valueOf();

console.log(d == s);//true

console.log(d == n);//false
Javascript 相关文章推荐
JS 获取span标签中的值的代码 支持ie与firefox
Aug 24 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
jquery.cookie.js使用指南
Jan 05 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
原生js实现回复评论功能
Jan 18 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 #Javascript
JavaScript中的比较操作符>、=、
Dec 31 #Javascript
javascript 操作符(~、&、|、^、)使用案例
Dec 31 #Javascript
JavaScript中的逻辑判断符&&、||与!介绍
Dec 31 #Javascript
JavaScript中的eval()函数使用介绍
Dec 31 #Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 #Javascript
JavaScript中的异常捕捉介绍
Dec 31 #Javascript
You might like
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
python2.x实现人民币转大写人民币
2018/06/20 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
kfc实习自我鉴定
2013/12/14 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
2014信息公开实施方案
2014/02/22 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
计算机网络专业求职信
2014/06/05 职场文书
车辆委托书范本
2014/10/05 职场文书
纪律委员竞选稿
2015/11/19 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python