javascript中的=等号个数问题两个跟三个有什么区别


Posted in Javascript onOctober 23, 2013

一个等号就是个赋值的作用,主要问题在于两个跟三个等号的区别。
javaScript中两个等于号和三个等于号之间的区别

一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为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 相关文章推荐
javascript:以前写的xmlhttp池,代码
May 18 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
js使用数组判断提交数据是否存在相同数据
Nov 27 Javascript
js style动态设置table高度
Oct 21 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
原生JS实现音乐播放器
Jan 26 Javascript
用js来获取上传的文件名纯粹是为了美化而用
Oct 23 #Javascript
ajax与302响应代码测试
Oct 23 #Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 #Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 #Javascript
Javascript简单实现可拖动的div
Oct 22 #Javascript
将两个div左右并列显示并实现点击标题切换内容
Oct 22 #Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
Oct 22 #Javascript
You might like
介绍一些PHP判断变量的函数
2012/04/24 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
父亲节活动策划方案
2014/08/24 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
Python中常见的导入方式总结
2021/05/06 Python
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang
tomcat下部署jenkins的方法
2022/05/06 Servers