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 相关文章推荐
2014 HTML5/CSS3热门动画特效TOP10
Dec 07 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
JS生成某个范围的随机数【四种情况详解】
Apr 20 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
基于es6三点运算符的使用方法(实例讲解)
Oct 12 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
Jul 21 Javascript
在vue中使用console.log无效的解决
Aug 09 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 中执行排序与 MySQL 中排序
2009/04/21 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
详解PHP队列的实现
2019/03/14 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue移动端实现红包雨效果
2020/06/23 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
详解supervisor使用教程
2017/11/21 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
企划专员岗位职责
2013/12/09 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
体育之星事迹材料
2014/05/11 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
村级个人对照检查材料
2014/08/22 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
新员工入职感想
2015/08/07 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers