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 设置某DIV区域内的checkbox复选框
Nov 30 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
使用console进行性能测试
Apr 27 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
jQuery基本筛选选择器实例代码
Feb 06 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
基于element-ui的rules中正则表达式
Sep 04 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 Javascript
element ui分页多选,翻页记忆的实例
Sep 03 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 Javascript
JS如何在不同平台实现多语言方式
Jul 16 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
PHP6 mysql连接方式说明
2009/02/09 PHP
PHP面向对象概念
2011/11/06 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
json的使用小结
2016/06/08 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
投标单位介绍信
2014/01/09 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
新生儿未入户证明
2015/06/23 职场文书
在Python中如何使用yield
2021/06/07 Python
HTTP中的Content-type详解
2022/01/18 HTML / CSS