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 相关文章推荐
用jscript实现列出安装的软件列表
Jun 18 Javascript
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
jquery预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
ES6中Iterator与for..of..遍历用法分析
Mar 31 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 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类
2008/04/09 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
C#如何进行LDAP用户校验
2012/11/21 面试题
优秀导游先进事迹材料
2014/01/25 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
群众路线表态发言材料
2014/10/17 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
内勤岗位职责
2015/02/10 职场文书
小学英语教学反思范文
2016/02/15 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript