浅谈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制作浮动广告代码
Dec 30 Javascript
一个简单的jquery进度条示例
Apr 28 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
vue.js动态数据绑定学习笔记
May 19 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
jquery实现吸顶导航效果
Jan 08 jQuery
前端开发基础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 Hash算法:Times33算法代码实例
2015/05/13 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
Python如何输出警告信息
2020/07/30 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
单位介绍信范文
2014/01/18 职场文书
任命书格式
2014/06/05 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python