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 相关文章推荐
裁剪字符串trim()自定义改进版
Apr 10 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
Nov 08 Javascript
jquery实现一个简单好用的弹出框
Sep 26 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
Aug 15 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
BootStrap表单时间选择器详解
May 09 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
vue.js移动数组位置,同时更新视图的方法
Mar 08 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php cookies中删除的一般赋值方法
2011/05/07 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
python多进程读图提取特征存npy
2019/05/21 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Django的性能优化实现解析
2019/07/30 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
python热力图实现简单方法
2021/01/29 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
中学校庆方案
2014/03/17 职场文书
教师节横幅标语
2014/10/08 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
现货白银电话营销话术
2015/05/29 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python