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中this关键字使用方法详解
Mar 08 Javascript
javascript中的new使用
Mar 20 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
详解JS面向对象编程
Jan 24 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
js实现简单的手风琴效果
Feb 27 Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 Javascript
vue keep-alive 动态删除组件缓存的例子
Nov 04 Javascript
为react组件库添加typescript类型提示的方法
Jun 15 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 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实现时间轴函数代码
2011/10/08 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
php中动态变量用法实例
2015/06/10 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
web打印小结
2017/01/11 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
Python实现简单拆分PDF文件的方法
2015/07/30 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Django的models中on_delete参数详解
2019/07/16 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
家教广告词
2014/03/19 职场文书
新法人代表任命书
2014/06/06 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
史上最牛辞职信
2015/05/13 职场文书