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 相关文章推荐
toString()一个会自动调用的方法
Feb 08 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
利用jq让你的div居中的好方法分享
Nov 21 Javascript
JS实现模仿微博发布效果实例代码
Dec 16 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
Mar 09 Javascript
javascript中toFixed()四舍五入使用方法详解
Sep 28 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 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+mysql防止SQL注入的方法小结
2019/04/27 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
python基础教程之五种数据类型详解
2017/01/12 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
个人简历自荐信
2013/12/05 职场文书
毕业生自荐书模版
2014/01/04 职场文书
承诺书范文
2014/06/03 职场文书
数学教育专业求职信
2014/07/22 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
python xlwt模块的使用解析
2021/04/13 Python
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL