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 相关文章推荐
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
javaScript checkbox 全选/反选及批量删除
Apr 28 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
Feb 05 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 Javascript
通过正则表达式实现表单验证是否为中文
Feb 18 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
微信小程序实现联动选择器
Feb 15 Javascript
Webpack 4如何动态切割JS注入文件名详解
Jul 09 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 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出错界面
2006/10/09 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
js判断是否是手机页面
2017/03/17 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
鲜果饮品店创业计划书
2014/01/21 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
校运动会广播稿300字
2014/10/07 职场文书
2014年医院工作总结
2014/11/20 职场文书
创先争优活动个人总结
2015/03/04 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
检讨书范文
2019/04/16 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python