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得到XML某节点的子节点个数的脚本
Oct 11 Javascript
9个JavaScript评级/投票插件
Jan 18 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
js获取元素相对窗口位置的实现代码
Sep 28 Javascript
JavaScript中Null与Undefined的区别解析
Jun 30 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
微信接入之获取用户头像的方法步骤
Sep 23 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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中header的用法详解
2013/06/07 PHP
php实现计数器方法小结
2015/01/05 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python实现逻辑回归的方法示例
2017/05/02 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
项目经理任命书内容
2014/06/06 职场文书
售房委托书
2014/08/30 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
vue实现移动端div拖动效果
2022/03/03 Vue.js