浅谈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 27 Javascript
js控制的遮罩层实例介绍
May 29 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
Javascript基础教程之argument 详解
Jan 18 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
Aug 03 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
实现两个文本框同时输入的实例
Sep 25 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
原生js实现自定义难度的扫雷游戏
Jan 22 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里得到前天和昨天的日期的代码
2007/08/16 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
php格式化json函数示例代码
2016/05/12 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
JavaScript国旗变换效果代码
2008/08/13 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
JS运动基础框架实例分析
2015/03/03 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
python实现祝福弹窗效果
2019/04/07 Python
wxpython布局的实现方法
2019/11/01 Python
python图形用户接口实例详解
2019/12/16 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
爱岗敬业演讲稿
2014/05/05 职场文书
运动会口号8字
2014/06/07 职场文书
环境科学专业求职信
2014/08/04 职场文书
2014年辅导员工作总结
2014/11/18 职场文书