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 相关文章推荐
jquery 模式对话框终极版实现代码
Sep 28 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
Feb 04 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
jQuery选择器全集详解
Nov 24 Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
js实现放大镜特效
May 18 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
用vue构建多页面应用的示例代码
Sep 20 Javascript
详解create-react-app 自定义 eslint 配置
Jun 07 Javascript
微信小程序版本自动更新的方法
Jun 14 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python栈类实例分析
2015/06/15 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
思想汇报范文
2013/11/04 职场文书
办公室主任职责范文
2013/11/08 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android