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 相关文章推荐
javascript js cookie的存储,获取和删除
Dec 29 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
Dec 20 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
详解JavaScript函数对象
Nov 15 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
JavaScript实现点击自制菜单效果
Feb 02 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 流程控制switch的简单实例
2016/06/07 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
浅析Python中yield关键词的作用与用法
2016/11/29 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
P/Invoke是什么
2015/07/31 面试题
团员个人年度总结
2015/02/26 职场文书
青涩记忆观后感
2015/06/18 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书