浅谈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 相关文章推荐
js与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
js使用html()或text()方法获取设置p标签的显示的值
Aug 01 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
编写高性能Javascript代码的N条建议
Oct 12 Javascript
JavaScript动态创建div等元素实例讲解
Jan 06 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
Puppeteer 爬取动态生成的网页实战
Nov 14 Javascript
Vue实现计算器计算效果
Aug 17 Javascript
JavaScript实现队列结构过程
Dec 06 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常用的三种设计模式汇总
2016/08/28 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
JS与框架页的操作代码
2010/01/17 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
javascript计时器详解
2015/02/28 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
python任务调度实例分析
2015/05/19 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
python实现可逆简单的加密算法
2019/03/22 Python
python进阶之自定义可迭代的类
2019/08/20 Python
500行python代码实现飞机大战
2020/04/24 Python
python和js交互调用的方法
2020/06/23 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
个人贷款承诺书
2014/03/28 职场文书
受伤赔偿协议书
2014/09/24 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
培训心得体会怎么写
2016/01/25 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
python tkinter实现定时关机
2021/04/21 Python
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
Python Django项目和应用的创建详解
2021/11/27 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript