简单来说: == 代表相同, ===代表严格相同。

这么理解: 当==进行比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false

双等号==的比较过程:

  1. 如果两个值类型相同,再进行三个等号(===)的比较;

  2. 在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:

    1. 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false 转换为 0,而true 转换为 1
    2. 如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
    3. 如果一个操作数是对象,另一个操作数不是,则调用对象的 valueOf() 方法,用得到的基本类型值按照前面的规则进行比较;
  3. 这两个操作符在进行比较时则要遵循下列规则:

    1. nullundefined 是相等的;要比较相等性之前,不能将 nullundefined 转换成其他任何值;
    2. 如果有一个操作数是 NaN,则相等操作符返回 false,而不相等操作符返回 true。即使两个操作数都是 NaN,相等操作符也返回 false;因为按照规则,NaN 不等于 NaN
    3. 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回 true;否则,返回 false

JS中的==和===的区别相关推荐

  1. js中toString()和String()区别详解

    转载自  js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...

  2. 2021-09-11 consolidate 模板引擎整合库,Node.js 中 __dirname 和 ./ 的区别

    consolidate 模板引擎整合库[适配] npm install consolidate 在工作路径的views目录下,新建1.ejs <!DOCTYPE html> <htm ...

  3. JS中同步和异步的区别

    JS中同步和异步的区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推.如果一个任务耗 ...

  4. js中const,var,let区别与用法

    原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...

  5. 【js】js中const,var,let区别

    在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...

  6. js 中call()与apply()区别与常见用途

    在JS中Function原型定义了两个方法,分别是Function.prototype.call和Function.prototype.apply. call与apply的区别 Function.pr ...

  7. Node.js 中 __dirname 和 ./ 的区别

    stackoverflow 地址 概要 Node.js 中,__dirname 总是指向被执行 js 文件的绝对路径,所以当你在 /d1/d2/myscript.js 文件中写了 __dirname, ...

  8. 【php基础入门】PHP环境搭建与初识php代码书写及演示PHP和JS中遍历数组的区别、引入外部文件等知识点学习笔记

    php是什么? PHP是PHP:HypertextPreprocessor(超文本预处理器)的首字母缩写,是一种跨平台的.开源的.免费的脚本语言,其语法吸收了C语言.Java 和 Perl 的特点,利 ...

  9. JS中attr和prop区别

    一.attr和prop区别 attr 是从页面搜索获得元素值,所以页面必须明确定义元素才能获取值,相对来说较慢. prop是从属性对象中取值,属性对象中有多少属性,就能获取多少值,不需要在页面中显示定 ...

  10. JS中var和let区别

    1.let声明的变量是块级作用域(所在花括号里),var是函数作用域和全局作用域      注意:let是可以定义全局变量,局部变量,块级作用域的变量. 2.let声明的变量只在其声明的块或子块中可用 ...

最新文章

  1. CentOS6怎么样设置ADSL上网
  2. ACM小白入门之必须要了解的东西
  3. ios 将矩形图片裁剪成圆形图片
  4. 这是预编译工具生成的文件_组件化架构 10.编译优化
  5. spring cloud @RefreshScope刷新问题
  6. css--calc()函数
  7. VTK:网格之ColoredElevationMap
  8. ubuntu16.04无法连接WiFi搜索不到网络网卡驱动
  9. leetcode704. 二分查找
  10. C#基于websocket-sharp实现简易httpserver(封装)
  11. 第七章 变量进阶与点阵LED 练习题
  12. quartz 数据库表含义解释
  13. symbol是c语言标识符,symbol的理解
  14. sentiment analysis
  15. 火山PC(火山视窗)超级列表框使用案例教程
  16. Opencv实现击中击不中
  17. 图像信息处理:bmp文件、颜色空间转化、灰度图
  18. eap方法 华为手机怎么连wifi_怎样为WLAN选择最佳的EAP?
  19. solidworks螺纹线画法
  20. 关于项目采购管理,这些你需要知道

热门文章

  1. 访问tomcat服务器文件路径,外置tomcat映射服务器路径以及springboot内置tomcat映射路径配置...
  2. 内核管理 之 内核管理概述
  3. java学习日记(1-7)
  4. Learn Python 014: Funtions
  5. Docker结合Jenkins的持续构建实践
  6. android TextView中文字通过SpannableString设置属性
  7. 关于telnet的问题
  8. Linux学习笔记:GDB常用命令
  9. 复制的python代码格式错误_新手常见6种的python报错及解决方法
  10. 七牛云 转码_开发者选择短视频SDK,为何青睐七牛云?