首先,== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。

下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
   a、如果一个是null、一个是undefined,那么[相等]。
   b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
   c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
   d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
   e、任何其他组合,都[不相等]。

举例:
"1" == true
  类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

= 赋值运算符
== 等于
=== 严格等于
例:
var a = 3;
var b = "3";

a==b 返回 true
a===b 返回 false

因为a,b的类型不一样
===用来进行严格的比较判断

javascript中两个等号和三个等号的区别相关推荐

  1. JS/JavaScript中两个等号 == 和 三个等号 === 的区别

    JavaScript中两个等号 == 和 三个等号 === 的区别 一.概念 == 和 ===  (1)  "=="叫做相等运算符,"==="叫做严格运算符. ...

  2. js两个等号和三个等号_js中两个等号(==)和三个等号(===)的区别

    js中两个等号(==)和三个等号(===)的区别: 1. "=="表示:equality -> 等同 的意思,"=="使用两个等号时,如果两边值的类型不同 ...

  3. js中两个等号“==“与三个等号“===“有何不同

    一.1个等号"=": 首先一个等号"=",大家都知道,一般在编程语言中是用来做赋值操作的,也叫赋值运算符,即把等号右边的值,赋值给左边声明的变量. 例如:在js ...

  4. Javascript中!!(两个感叹号,双感叹号)的含义

    使用Javascript时,有时会在变量前面加上两个感叹号,这样做表示什么含义呢?Javascript中,!表示运算符"非",如果变量不是布尔类型,会将变量自动转化为布尔类型,再取 ...

  5. 两个等号(==)和三个等号(===)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 两个等号(==)和三个等号(===)的区别: 1. "=="表示:equality -> 等同 的意 ...

  6. JavaScript 保留两位小数的三种实现方法

    以下将为大家介绍 JavaScript 保留两位小数的三种实现方法. 目录 1.利用toFixed () 方法 2.利用Math.floor () 方法 3.利用正则表达式方法 1.利用toFixed ...

  7. JavaScript中String的slice(),substr(),substring()三者区别

    JavaScript中String的slice(),substr(),substring()三者区别 共同之处 从给定的字符串中截取片段,并返回全新的这片段的字符串对象,且不会改动原字符串. 具体不同 ...

  8. 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别

    今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...

  9. 两电平apf和三电平apf的区别

    三电平 三电平逆变器:拓扑为在两个电力电子开关器件串联的基础上,中性点加一对箝位二极管的三电平逆变器,又称为中性点箝位型(Neutral Point Clamped,简称NPC)三电平逆变器,所示即为 ...

  10. inflate方法两个参数和三个参数的区别

    前言 今天在lint项目的代码时,又遇到了inflate方法的参数问题,之前看过相关的文章,又没有记录下来,导致时间长了就忘记了.今天再次遇到这个问题,便老老实实记录一下LayouInflater中i ...

最新文章

  1. c# BackgroundWorker组件介绍(属性、方法、事件)
  2. 正则表达式(Regular Expression)
  3. ba+ii+plus模拟+android,财务计算器(BAII PLUS)
  4. Servlet3.1 新增的非阻塞式IO
  5. 【NLP】关于Transformer的常见问题及解答
  6. java udp 工具类_java基于UDP实现图片群发功能
  7. git灰度发布版本_Git发布2.30版本
  8. vb mysql添加字段_怎么用VB向SQL数据库中添加记录
  9. mysql not in性能分析_SQL 中的 in 与 not in、exists 与 not exists 的区别以及性能分析...
  10. 2021年PMP考试模拟题7(含答案解析)
  11. 通用数据库弱密码检测解决方案
  12. Spring cloud搭建HSF框架,整合mybatis、redis、rabbit
  13. 求职软件测试工程师英文简历,软件测试员英文简历模板.doc
  14. 怎么查看电脑最大支持扩展内存
  15. Python的特点(优点和缺点)
  16. 怎样打开VOIP与SIP
  17. 高德地图各种摄像头图标_高德地图Overlay的应用以及照相功能的实现
  18. 怎么检查计算机硬盘有没有供电,怎么检测电脑硬盘有没有损坏
  19. mysql如何查看数据库相关信息
  20. 国产操作系统UOS安装教程

热门文章

  1. svn 怎么直接同步指定服务器的某个文件夹
  2. 【week3】psp (技术随笔)
  3. Java Web学习路线
  4. 设计模式学习 - 工厂模式
  5. 转)SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
  6. Flash与组件:国外收费组件网站
  7. android7.1 动态申请权限改为默认授权,修改PackageManagerService.java下的grantPermissions为true
  8. iosttableViewCell右侧的箭头,圆形等
  9. 论文笔记之:Multiple Feature Fusion via Weighted Entropy for Visual Tracking
  10. Mikrotik RouterOS 日常问题解析 ROS 5.4下载