浅谈JavaScript中等号、双等号、 三等号的区别


Posted in Javascript onAugust 06, 2020

一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。

=== 判断规则

如果类型不同,就[不相等] 
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 
如果两个值都是true,或者都是false,那么[相等]。 
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 
如果两个值都是null,或者都是undefined,那么[相等]。 

== 判断规则:

如果两个值类型相同,进行 === 比较。 
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: 
如果一个是null、一个是undefined,那么[相等]。 
如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 
如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核 心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我 也不大懂) 

任何其他组合,都[不相等]。

例如:

var a = 9;

var b = 9;

alert(a == b);

alert(a === b);

此时alert的值肯定是true,不管是全等还是恒等,原因应该也很简单吧,只是定义两个变量,并赋值,是相同类型,并且值也相等。可是当a和b都同时给赋个数组的时候就一定是false,这是以为地址的关系,想必也显而易见。来个小总结,嘿嘿

基本类型包括Undefined、Null、Boolean、Number和String类型,引用类型包括数组,函数和对象。

1.对于Number,String等基本类型时,双等号会先将类型转化一致再比较,值等则为true,三等号时,不会进行转化类型,直接比较,两个都相当才可为true。

2.对于数组,对象等时,不管是双等号还是三等号进行“指针地址”比较

到此这篇关于浅谈JavaScript中等号、双等号、 三等号的区别的文章就介绍到这了,更多相关JavaScript中三种等号区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
JS实现字体选色板实例代码
Nov 20 Javascript
jquery中EasyUI实现异步树
Mar 01 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
js中位运算的运用实例分析
Dec 11 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
前端开发基础javaScript的六大作用
Aug 06 #Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 #Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 #Javascript
Vue基于iview table展示图片实现点击放大
Aug 05 #Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 #Javascript
解决vue路由name同名,路由重复的问题
Aug 05 #Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 #Javascript
You might like
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
js实现音频控制进度条功能
2017/04/01 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
高中生的学习总结自我鉴定
2013/10/26 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
小学教师师德整改措施
2014/09/29 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2014年团总支工作总结
2014/11/21 职场文书
综合办公室岗位职责
2015/04/11 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
Python 中 Shutil 模块详情
2021/11/11 Python