JavaScript中的相等操作符分为两组,一组是相等(==)和不相等(!=),一组是全等(===)和不全等(!==)。

1 相等(==)和不相等(!=)

相等和不相等操作符在比较的时候,会对比较的操作数进行强制转型,即先转换再比较。它遵循以下的基本规则:

1. 如果有一个操作数为布尔值,则在比较相等性之前先将其转换为数值——false为0,true为1;

2. 如果有一个操作数为字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;

3. 如果有一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型按照前面的规则进行比较;

相等和不相等操作符在比较时还需要遵循以下的规则:

1. null和undefined不会进行强制转换,如

undefined == 0    //返回false

undefined不会被强制转换为0,因此比较结果返回false。

2. null和undefined是相等的,即

null == undefined    //返回ture

3. 如果有一个操作数是NaN,则相等操作符返回false。即使两个操作数都是NaN,返回结果也是false。即

"NaN" == NaN    //返回false
NaN == NaN    //返回false

4. 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则返回false。

2 全等(===)和不全等(!==)

全等和不全等操作符在比较的时候不会进行操作数的转换,来看下面的例子:

"55" == 55    //返回true
"55" === 55    //返回false

另外,null和undefined在相等操作符比较下,返回true,因为它们是类似的值。但是在全等操作符比较下,返回false,因为它们是不同类型的值,即:

null == undefined    //返回true
null === undefined    //返回false

JavaScript-相等和全等操作符相关推荐

  1. 解决TreeView中使用JavaScript完成CheckBox全选的办法

    结这次的工作,明白了几个关键的地方: 1.JavaScript中的确可以直接引用.Net服务器端控件,但是问题在于,控件的ID在编译后会自动加上名字空间,所以这里要特别注意. 2.使用JavaScri ...

  2. JavaScript 控制浏览器全屏展示

    JavaScript 控制浏览器全屏展示 前言 一.全屏区分 二.HTML Dom 全屏模式 展开全屏 退出全屏 三.兼容 IE 10 及 以下方式 DEMO 总结 前言 浏览器全屏功能解释 一.全屏 ...

  3. html 设置浏览器全屏显示,JavaScript控制浏览器全屏显示简单示例

    本文实例讲述了JavaScript控制浏览器全屏显示.分享给大家供大家参考,具体如下: www.jb51.net JS全屏显示 全屏显示 退出全屏 // 判断各种浏览器,找到正确的方法 functio ...

  4. JavaScript数据类型、引用类型、操作符、语句

    目录 数据类型 PS 深/浅拷贝 Array.from 浅 Object.assign 浅 扩展运算符 浅 P.PS 可枚举属性 判断属性 获取属性 附录typeOf 2.0 Undefined 2. ...

  5. JavaScript相等与全等区别

    相等和全等运算符是用来比较两个操作符是否相等的意思:就是相等运算符会进行类型的转换,而全等运算符不会进行类型的转换: 比如: 相等由双等号( = = )表示,当两个运算数相等时,它就会返回true:为 ...

  6. 通过SublimeCodeIntel设置JavaScript自动补全

    1.首先安装SublimeCodeIntel包. 进入sublime,通过Ctrl+Shift+P进入包管理,输入pci(首字母),选择Package Contrl:Intall Package,如图 ...

  7. JavaScript进阶(6)-全选练习

    全选练习:分别实现下图四个按钮点击后的功能 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &q ...

  8. JavaScript数组最全整理(包含ES6)

    作为ECMAScript最常用的数据类型之一,数组(Array)的作用越来越重要,功能也是越来越强大.在ES6之后,我们能对数组进行更多.更复杂的操作.本着方便查阅和分享的初衷,写下了这篇文章,希望对 ...

  9. JavaScript实现表格全选、全不选、反选

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)
  2. CSS之定位(固定定位)
  3. R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优
  4. hibernate中criteria的一些用法
  5. 蚂蚁金服蓝绿发布实践
  6. Saber2016安装包和安装详细安装步骤
  7. 工业机器人调运角度_工业机器人如何精准选型,这九大参数告诉你!
  8. Binding(二):控件关联和代码提升
  9. js实现类名的添加与移除
  10. html的组织顺序是什么,css如何组织?
  11. nginx配置多个conf文件
  12. golang游戏服务器框架_Go开源游戏服务器框架——Pitaya
  13. 0基础学python做什么工作好-零基础学了8个月的Python,到底有啥感悟
  14. 程序员必读的10本经典书(含资源)建议收藏
  15. python体脂率计算
  16. html加减乘除除数不能为零,0不能做除数(数学中0为什么不能做除数)
  17. cmake的使用(cmake不是内部或外部命令)
  18. opencv训练自己的模型,实现特定物体的识别
  19. 三星砸钱买公司以提升Bixby性能 奋力追赶亚马逊谷歌
  20. Unity3D制作触屏手机滑动动效果

热门文章

  1. 如何管理php常驻进程,一看就懂系列之 如何实现与控制php常驻进程-Go语言中文社区...
  2. 爬取《鱿鱼游戏》豆瓣热门评论后,我发现了这些…
  3. 陈天奇:十年机器学习科研之路(附链接)
  4. gprs at指令解析 c语言,GPRS的AT指令解析
  5. linux 内核dmesg,内核消息,dmesg
  6. 澳门赌王----何鸿燊----勤劳努力是最大的资本!
  7. android studio找不到X21,不必苦等Android P,这些“新”功能其实早在vivo X21就已实现...
  8. 汽车操作系统研发:“广义”带动“狭义”——东软睿驰总经理曹斌谈“软件定义汽车”
  9. 学习心得——析构函数
  10. gitEE(码云)的使用