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 (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
JS前端框架关于重构的失败经验分享
Mar 17 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
原生js实现jquery函数animate()动画效果的简单实例
Aug 21 Javascript
jQuery的事件预绑定
Dec 05 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
图文讲解vue的v-if使用方法
Feb 11 Javascript
微信小程序搭建自己的Https服务器
May 02 Javascript
关于vue的列表图片选中打钩操作
Sep 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 register_shutdown_function函数的深入解析
2013/06/03 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
javascript中对对层的控制
2006/12/29 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python3爬楼梯算法示例
2019/03/04 Python
Python中Selenium模块的使用详解
2020/10/09 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
学校师德承诺书
2014/05/23 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
建筑学专业自荐书
2014/07/09 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
男方婚前保证书
2015/02/28 职场文书