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 Flash插入函数免激活代码
Mar 31 Javascript
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
May 27 Javascript
用vue构建多页面应用的示例代码
Sep 20 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
Mar 02 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 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
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
php UBB 解析实现代码
2011/11/27 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP查询分页的实现代码
2017/06/09 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
vue实现通讯录功能
2018/07/14 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
python中os操作文件及文件路径实例汇总
2015/01/15 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
小学网上祭英烈活动总结
2014/07/05 职场文书
食品安全演讲稿
2014/09/01 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
创业计划书之甜品店
2019/09/18 职场文书