JavaScript中的操作符==与===介绍

 更新时间:2014年12月31日 09:10:54   投稿:junjie  
这篇文章主要介绍了JavaScript中的操作符==与===介绍,本文讲解了===操作符的判断规则、==操作符的判断规则,需要的朋友可以参考下

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

相关文章

  • BootStrap中Datetimepicker和uploadify插件应用实例小结

    BootStrap中Datetimepicker和uploadify插件应用实例小结

    这篇文章主要介绍了BootStrap中Datetimepicker和uploadify插件应用实例小结的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • 思维导图插件jsMind的详细使用指南

    思维导图插件jsMind的详细使用指南

    jsMind是一个显示/编辑思维导图的纯的javascript类库,其基于HTML5的帆布进行设计.jsMind以BSD协议开源,这篇文章主要给大家介绍了关于思维导图插件jsMind的详细使用指南,需要的朋友可以参考下
    2024-07-07
  • JavaScript element的Form表单生成方式

    JavaScript element的Form表单生成方式

    这篇文章主要介绍了JavaScript element的Form表单生成方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 微信小程序 授权登录详解(附完整源码)

    微信小程序 授权登录详解(附完整源码)

    这篇文章主要介绍了微信小程序 授权登录详解(附完整源码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • javascript简单性能问题及学习笔记

    javascript简单性能问题及学习笔记

    最近在看一本书:《高性能javaScript》,发现自己平时写js存在很多小细节上的问题,虽然这些问题不会导致程序运行出错,但是会导致界面加载变慢,用户体验变差,那么我们就来细细数一下应该注意的地方吧
    2014-02-02
  • jquery动态添加删除(tr/td)

    jquery动态添加删除(tr/td)

    这篇文章主要介绍了jquery动态添加删除(tr/td)的方法,需要的朋友可以参考下
    2015-02-02
  • css3元素简单的闪烁效果实现(html5 jquery)

    css3元素简单的闪烁效果实现(html5 jquery)

    本篇文章主要介绍了css3元素简单的闪烁效果实现(html5 jquery) 需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • jQuery右下角旋转环状菜单特效代码

    jQuery右下角旋转环状菜单特效代码

    jquery实现右下角旋转环形菜单特效代码,是固定在页面右下角位置,当用户点击了主菜单按钮后,子菜单项会以环状旋转进入页面,并使用animate.css制作动画效果,有需要的朋友可以参考下
    2015-08-08
  • 深入分析javascript中的错误处理机制

    深入分析javascript中的错误处理机制

    这篇文章主要介绍了深入分析javascript中的错误处理机制的相关资料,需要的朋友可以参考下
    2016-07-07
  • js数字舍入误差以及解决方法(必看篇)

    js数字舍入误差以及解决方法(必看篇)

    下面小编就为大家带来一篇js数字舍入误差以及解决方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论