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中sort()方法的用法
Nov 04 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
May 10 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
vue 中url 链接左边的小图标更改问题
Dec 30 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
德生PL330的评价与改造
2021/03/02 无线电
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
Python程序控制语句用法实例分析
2020/01/14 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
python 爬虫如何正确的使用cookie
2020/10/27 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
个人自我鉴定
2013/11/07 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
汽车销售员工作总结
2015/08/12 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL