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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
Nov 13 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
js数组常见操作及数组与字符串相互转化实例详解
Nov 10 Javascript
Underscore源码分析
Dec 30 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
js生成随机数(指定范围)的实例代码
Jul 10 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
vue中使用localstorage来存储页面信息
Nov 04 Javascript
Node+OCR实现图像文字识别功能
Nov 26 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 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
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
PHP 断点续传实例详解
2017/11/11 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
javascript工具库代码
2012/03/29 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
require.js的用法详解
2015/10/20 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
Python import与from import使用及区别介绍
2018/09/06 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
介绍一下Make? 为什么使用make
2013/12/08 面试题
计算机相关的自我评价
2014/01/15 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
致百米运动员广播稿
2014/01/29 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
公司捐款倡议书
2014/05/14 职场文书
高三霸气励志标语
2014/06/24 职场文书
汽修专业自荐信
2014/07/07 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
超市食品安全承诺书
2015/04/29 职场文书
如何写观后感
2015/06/19 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python