JavaScript-相等和全等操作符
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-相等和全等操作符相关推荐
- 解决TreeView中使用JavaScript完成CheckBox全选的办法
结这次的工作,明白了几个关键的地方: 1.JavaScript中的确可以直接引用.Net服务器端控件,但是问题在于,控件的ID在编译后会自动加上名字空间,所以这里要特别注意. 2.使用JavaScri ...
- JavaScript 控制浏览器全屏展示
JavaScript 控制浏览器全屏展示 前言 一.全屏区分 二.HTML Dom 全屏模式 展开全屏 退出全屏 三.兼容 IE 10 及 以下方式 DEMO 总结 前言 浏览器全屏功能解释 一.全屏 ...
- html 设置浏览器全屏显示,JavaScript控制浏览器全屏显示简单示例
本文实例讲述了JavaScript控制浏览器全屏显示.分享给大家供大家参考,具体如下: www.jb51.net JS全屏显示 全屏显示 退出全屏 // 判断各种浏览器,找到正确的方法 functio ...
- JavaScript数据类型、引用类型、操作符、语句
目录 数据类型 PS 深/浅拷贝 Array.from 浅 Object.assign 浅 扩展运算符 浅 P.PS 可枚举属性 判断属性 获取属性 附录typeOf 2.0 Undefined 2. ...
- JavaScript相等与全等区别
相等和全等运算符是用来比较两个操作符是否相等的意思:就是相等运算符会进行类型的转换,而全等运算符不会进行类型的转换: 比如: 相等由双等号( = = )表示,当两个运算数相等时,它就会返回true:为 ...
- 通过SublimeCodeIntel设置JavaScript自动补全
1.首先安装SublimeCodeIntel包. 进入sublime,通过Ctrl+Shift+P进入包管理,输入pci(首字母),选择Package Contrl:Intall Package,如图 ...
- JavaScript进阶(6)-全选练习
全选练习:分别实现下图四个按钮点击后的功能 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &q ...
- JavaScript数组最全整理(包含ES6)
作为ECMAScript最常用的数据类型之一,数组(Array)的作用越来越重要,功能也是越来越强大.在ES6之后,我们能对数组进行更多.更复杂的操作.本着方便查阅和分享的初衷,写下了这篇文章,希望对 ...
- JavaScript实现表格全选、全不选、反选
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)
- CSS之定位(固定定位)
- R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优
- hibernate中criteria的一些用法
- 蚂蚁金服蓝绿发布实践
- Saber2016安装包和安装详细安装步骤
- 工业机器人调运角度_工业机器人如何精准选型,这九大参数告诉你!
- Binding(二):控件关联和代码提升
- js实现类名的添加与移除
- html的组织顺序是什么,css如何组织?
- nginx配置多个conf文件
- golang游戏服务器框架_Go开源游戏服务器框架——Pitaya
- 0基础学python做什么工作好-零基础学了8个月的Python,到底有啥感悟
- 程序员必读的10本经典书(含资源)建议收藏
- python体脂率计算
- html加减乘除除数不能为零,0不能做除数(数学中0为什么不能做除数)
- cmake的使用(cmake不是内部或外部命令)
- opencv训练自己的模型,实现特定物体的识别
- 三星砸钱买公司以提升Bixby性能 奋力追赶亚马逊谷歌
- Unity3D制作触屏手机滑动动效果
热门文章
- 如何管理php常驻进程,一看就懂系列之 如何实现与控制php常驻进程-Go语言中文社区...
- 爬取《鱿鱼游戏》豆瓣热门评论后,我发现了这些…
- 陈天奇:十年机器学习科研之路(附链接)
- gprs at指令解析 c语言,GPRS的AT指令解析
- linux 内核dmesg,内核消息,dmesg
- 澳门赌王----何鸿燊----勤劳努力是最大的资本!
- android studio找不到X21,不必苦等Android P,这些“新”功能其实早在vivo X21就已实现...
- 汽车操作系统研发:“广义”带动“狭义”——东软睿驰总经理曹斌谈“软件定义汽车”
- 学习心得——析构函数
- gitEE(码云)的使用