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 相关文章推荐
比较详细的关于javascript中void(0)的具体含义解释
Aug 02 Javascript
js cookies实现简单统计访问次数
Nov 24 Javascript
html向js方法传递参数具体实现
Aug 08 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
小程序实现分类页
Jul 12 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
vue 实现用户登录方式的切换功能
Apr 14 Javascript
JavaScript Html实现移动端红包雨功能页面
Jan 10 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
lib.utf.js
2007/08/21 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
Python复数属性和方法运算操作示例
2017/07/21 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python机器学习之决策树分类详解
2017/12/20 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
电大自我鉴定
2013/10/27 职场文书
中文专业自荐书
2014/06/29 职场文书
党校毕业心得体会
2014/09/13 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
实习感想范文
2015/08/10 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL