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的事件触发器介绍的实现
Jun 05 Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 Javascript
Vue.use源码学习小结
Jun 20 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 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投票程序源码
2007/03/11 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php获取随机数组列表的方法
2014/11/13 PHP
详解php的socket通信
2015/08/11 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
PHP7修改的函数
2021/03/09 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
javascript 常用方法总结
2009/06/03 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python读写Excel表格的方法
2021/03/02 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
益模软件Java笔试题
2012/03/27 面试题
医学实习生自我鉴定
2013/12/12 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
住房租房协议书
2014/08/20 职场文书