浅谈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 StringBuilder类实现
Dec 22 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
基于JavaScript实现智能右键菜单
Mar 02 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
Oct 04 Javascript
基于Node.js的WebSocket通信实现
Mar 11 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
在react中使用vuex的示例代码
Jul 30 Javascript
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
jQuery实现手风琴特效
Jan 11 jQuery
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
前端开发基础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/02/24 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
js获取当前select 元素值的代码
2010/04/19 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
Node.js编码规范
2014/07/14 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
python的else子句使用指南
2016/02/27 Python
Python三级菜单的实例
2017/09/13 Python
python实现俄罗斯方块
2018/06/26 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python manage.py runserver流程解析
2019/11/08 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
电子商务专业推荐信范文
2013/12/02 职场文书
社区志愿者心得体会
2014/01/03 职场文书
婚礼主持词开场白
2014/03/13 职场文书
大学学习计划书范文
2014/05/02 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
个人收入证明模板
2014/09/18 职场文书
义诊活动总结
2015/02/04 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
Python基础之元组与文件知识总结
2021/05/19 Python
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python