浅谈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 相关文章推荐
Javascript变量函数浅析
Sep 02 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 Javascript
关于JQuery($.load)事件的用法和分析
Apr 09 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
Jan 02 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
javascript元素动态创建实现方法
May 13 Javascript
jquery中val()方法是从最后一个选项往前读取的
Sep 06 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
Nov 08 Javascript
JavaScript 自定义事件之我见
Sep 25 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
javascript+Canvas实现画板功能
Jun 23 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应用JSON技巧讲解
2013/02/03 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
pytorch 数据集图片显示方法
2018/07/26 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
高中的自我鉴定
2013/12/16 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
房地产广告词大全
2014/03/19 职场文书
初中班主任评语大全
2014/04/24 职场文书
代办社保委托书范文
2014/10/06 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript
Java字符串逆序方法详情
2022/03/21 Java/Android