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接受和处理xml数据的代码(.net)
Mar 28 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
angular.js实现购物车功能
Oct 23 Javascript
使用react render props实现倒计时的示例代码
Dec 06 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
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
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
jQuery Ajax文件上传(php)
2009/06/16 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python实现简单的代理服务器
2015/07/25 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Python转换时间的图文方法
2019/07/01 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
日语专业个人的求职信
2013/12/03 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
女生抽烟检讨书
2014/10/05 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
MySQL 开窗函数
2022/02/15 MySQL
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL