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 相关文章推荐
通过修改referer下载文件的方法
May 11 Javascript
JS解析XML的实现代码
Nov 12 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
Sep 09 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
解决node-sass偶尔安装失败的方法小结
Dec 05 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 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/11/16 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
jsonp原理及使用
2013/10/28 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
python3.6编写的单元测试示例
2019/08/17 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
校长创先争优承诺书
2014/08/30 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
公司奖励通知
2015/04/21 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers