浅谈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 相关文章推荐
懒就要懒到底——鼠标自动点击(含时间判断)
Feb 20 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
vue实现表单录入小案例
Sep 27 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
原生js实现密码强度验证功能
Mar 18 Javascript
js实现搜索提示框效果
Sep 05 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时区转换转换函数
2014/01/07 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
js有关元素内容操作小结
2011/12/20 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
2015/11/17 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
js+SVG实现动态时钟效果
2018/07/14 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
17个Python小技巧分享
2015/01/23 Python
Python连接DB2数据库
2016/08/27 Python
Python生成密码库功能示例
2017/05/23 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Django如何配置mysql数据库
2018/05/04 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
体育专业个人求职信范文
2013/12/27 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
催款律师函范文
2015/05/27 职场文书