浅析js中2个等号与3个等号的区别


Posted in Javascript onAugust 06, 2013

首先,== equality 等同,=== identity 恒等。

==, 两边值类型不同的时候,要先进行类型转换,再比较。

===,不做类型转换,类型不同的一定不等。

下面分别说明:

先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:

1、如果类型不同,就[不相等]

2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。

4、如果两个值都是true,或者都是false,那么[相等]。

5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。

6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,根据以下规则:

1、如果两个值类型相同,进行 === 比较。

2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

a、如果一个是null、一个是undefined,那么[相等]。

b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

c、如果任一值是 true

Javascript 相关文章推荐
jquery 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
让mayfish支持mysqli数据库驱动的实现方法
May 22 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
iframe子父页面调用js函数示例
Nov 07 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 Javascript
JSON相关知识汇总
Jul 03 Javascript
javascript的理解及经典案例分析
May 20 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
JS中的BOM应用
Feb 02 Javascript
vue+iview+less+echarts实战项目总结
Feb 22 Javascript
简单了解node npm cnpm的具体使用方法
Feb 27 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 #Javascript
jquery鼠标滑过提示title具体实现代码
Aug 06 #Javascript
jquery弹出关闭遮罩层实例
Aug 06 #Javascript
jquery批量控制form禁用的代码
Aug 06 #Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 #Javascript
intro.js 页面引导简单用法 分享
Aug 06 #Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 #Javascript
You might like
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
详解Python中time()方法的使用的教程
2015/05/22 Python
详解Python中dict与set的使用
2015/08/10 Python
全面了解python字符串和字典
2016/07/07 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Yahoo-PHP面试题1
2016/07/20 面试题
写给学生的新学期寄语
2014/01/18 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
设计顾问服务计划书
2014/05/04 职场文书
美术学专业求职信
2014/07/23 职场文书
师德先进个人材料
2014/12/20 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android