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 相关文章推荐
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
Apr 06 Javascript
javascript正则表达式基础知识入门
Apr 20 Javascript
详解jQuery中的事件
Dec 14 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
几行js代码实现自适应
Feb 24 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
react-native fetch的具体使用方法
Nov 01 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
详解如何使用Node.js实现热重载页面
May 06 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
用js实现in_array的方法
2013/11/05 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python字符串对象实现原理详解
2019/07/01 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python中字典增加和删除使用方法
2020/09/30 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
2013年员工自我评价范文
2013/12/27 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
女娲补天教学反思
2014/02/05 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
班风口号
2014/06/18 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server