Javascript中的相等与不等运算


Posted in Javascript onApril 25, 2010

转换的规则如下:
如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1。
如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换为数字进行比较。
如果其中一个操作数的类型是字符串,另外一个为 object 类型,那么,将调用对象的 toString 方法之后,比较字符串。
如果其中一个操作数的类型是数字类型,另外一个为 object 类型,那么,将对象转换为数值后进行数字比较。

以下的规定了一些特殊的比较:
null 和 undefined 是相等的。
null 和 undefined 不会转换为任何其他类型
如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。
如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。

alert(null == undefined); // true
alert(undefined == null); // true

alert(true == 1); // true
alert(false == 0); // true
alert(true == 2); // false

var obj = {};
alert(10 == obj); // false

完全相同的比较 === 和不完全相等 !==
完全相同的比较用来比较不进行转换是否相等,例如:

var a = "100";
var b = 100;

alert(a == b); // true
alert(a === b); // false

== 比较将返回真,因为 “100” 首先转换为数字 100, 然后与数字 100 进行比较,结果相等。
=== 比较将返回假,因为字符串 ”100” 不经过转换的话,与数字 100 不相等。

!== 用于比较在不转换的情况下,是否不相等。

alert(a != b); // false
alert(a !== b); // true

第一种情况将返回假,因为转换后是相等的。第二种情况将返回真,因为不经过转换的话,他们一个是字符串,一个是数字,是不相等的。

Javascript 相关文章推荐
jquery ajax 登录验证实现代码
Sep 23 Javascript
document.write的几点使用心得
May 14 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
BootStrapValidator校验方式
Dec 19 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
vue头部导航动态点击处理方法
Nov 02 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
微信小程序如何获取地址
Dec 24 Javascript
Vue页面刷新记住页面状态的实现
Dec 27 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
Apr 25 #Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 #Javascript
javascript之学会吝啬 精简代码
Apr 25 #Javascript
一些相见恨晚的 JavaScript 技巧
Apr 25 #Javascript
Javascript 中的 && 和 || 使用小结
Apr 25 #Javascript
js 禁用只读文本框获得焦点时的退格键
Apr 25 #Javascript
js 内存释放问题
Apr 25 #Javascript
You might like
php 删除无限级目录与文件代码共享
2008/11/22 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP 裁剪图片
2021/03/09 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
python中的五种异常处理机制介绍
2014/09/02 Python
Python中的自省(反射)详解
2015/06/02 Python
python类的继承实例详解
2017/03/30 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
入党积极分子自我批评思想汇报
2014/10/10 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang