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仿flash上传头像效果实现代码
Jul 18 Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
Jul 21 Javascript
Vue常用指令详解分析
Aug 19 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
浅析Vue下的components模板使用及应用
Nov 27 Javascript
微信小程序实用代码段(收藏版)
Dec 17 Javascript
js实现双人五子棋小游戏
May 28 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
Python open读写文件实现脚本
2008/09/06 Python
9种python web 程序的部署方式小结
2014/06/30 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
总监职责范文
2013/11/09 职场文书
网吧消防安全制度
2014/01/28 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
新闻人物通讯稿
2014/10/09 职场文书
婚宴主持词
2015/06/30 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
Python几种酷炫的进度条的方式
2022/04/11 Python