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 相关文章推荐
Prototype使用指南之hash.js
Jan 10 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
Nov 09 Javascript
js+数组实现网页上显示时间/星期几的实用方法
Jan 18 Javascript
SOSO地图JS画出标注和中心点以html形式运行
Aug 09 Javascript
js获取时间(本周、本季度、本月..)
Nov 22 Javascript
jquery delay()介绍及使用指南
Sep 02 Javascript
jQuery 如何给Carousel插件添加新的功能
Apr 18 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 Javascript
Angular中的$watch、$watchGroup、$watchCollection
Jun 25 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 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新手谈谈我的学习心得
2007/02/25 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
python mock测试的示例
2020/10/19 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
房屋出售协议书
2014/04/10 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
爱耳日活动总结
2014/04/30 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
2014年实验室工作总结
2014/12/03 职场文书
酒桌上的开场白
2015/06/01 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技