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传值 判断
Oct 26 Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
Feb 02 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
Bootstrap 布局组件(全)
Jul 18 Javascript
angularJS Provider、factory、service详解及实例代码
Sep 21 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 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
第十一节 重载 [11]
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
JavaScript 继承的实现
2009/07/09 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
店面销售职位的职责
2014/03/09 职场文书
火箭队口号
2014/06/18 职场文书
服务标语口号
2014/07/01 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis