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 相关文章推荐
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
js 鼠标移动显示图片的简单实例
Dec 25 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
jQuery源码分析之jQuery中的循环技巧详解
Sep 06 Javascript
Javascript基础教程之变量
Jan 18 Javascript
基于jquery实现智能表单验证操作
May 09 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
Mar 02 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
Jun 11 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 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
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
Linux下Python获取IP地址的代码
2014/11/30 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
简单了解如何封装自己的Python包
2020/07/08 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
Sony C++笔试题
2013/03/10 面试题
咖啡厅创业计划书范本
2014/01/22 职场文书
文秘求职信范文
2014/04/10 职场文书
大学生应聘求职信
2014/05/26 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
初中团支书竞选稿
2015/11/21 职场文书
初三化学教学反思
2016/02/22 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android