javaScript中两个等于号和三个等于号之间的区别介绍


Posted in Javascript onJune 27, 2014

一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。
===表示恒等于,比较的两边要绝对的相同

alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

先说 ===,这个比较简单,具体比较规则如下:

1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,具体比较规则如下:

1、如果两个值类型相同,进行 === 比较,比较规则同上
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合(array数组等),都[不相等]。

Javascript 相关文章推荐
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
javascript实现切换td中的值
Dec 05 Javascript
简单理解JavaScript中的封装与继承特性
Mar 19 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
Jul 04 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
详解基于vue-cli优化的webpack配置
Nov 06 Javascript
Vue.js在数组中插入重复数据的实现代码
Nov 17 Javascript
vue-router为激活的路由设置样式操作
Jul 18 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 #Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 #Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 #Javascript
node.js实现逐行读取文件内容的代码
Jun 27 #Javascript
javascript实现的HashMap类代码
Jun 27 #Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 #Javascript
Javascript字符串对象的常用方法简明版
Jun 26 #Javascript
You might like
也谈php网站在线人数统计
2008/04/09 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
nginx下安装php7+php5
2016/07/31 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
js加解密 脚本解密
2008/02/22 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
python生成ppt的方法
2018/06/07 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
django使用graphql的实例
2020/09/02 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
Internal修饰符有什么含义
2013/07/10 面试题
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
大学班级学风建设方案
2014/05/01 职场文书
城管大队整治方案
2014/05/06 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python