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 相关文章推荐
setInterval计时器不准的问题解决方法
May 08 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
Feb 09 Javascript
老生常谈jquery id选择器和class选择器的区别
Feb 12 Javascript
jQuery validata插件实现方法
Jun 25 jQuery
js微信应用场景之微信音乐相册案例分享
Aug 11 Javascript
JS+CSS实现网页加载中的动画效果
Oct 27 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
Sep 07 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
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批量删除数据
2007/01/18 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
php获取淘宝分类id示例
2014/01/16 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP文件与目录操作示例
2016/12/24 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
ubuntu中配置pyqt4环境教程
2017/12/27 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
python学生信息管理系统(初级版)
2018/10/17 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
python中re模块知识点总结
2021/01/17 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
行政主管岗位职责
2013/11/18 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
vue动态绑定style样式
2022/04/20 Vue.js
canvas 中如何实现物体的框选
2022/08/05 Javascript