iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JS中==、===如何区分
  • 402
分享到

JS中==、===如何区分

2024-04-02 19:04:59 402人浏览 独家记忆
摘要

这篇文章主要为大家展示了“js中==、===如何区分”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中==、===如何区分”这篇文章吧。==、===都是相等运

这篇文章主要为大家展示了“js中==、===如何区分”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中==、===如何区分”这篇文章吧。

==、===都是相等运算符,这个大家应该都知道,但二者有什么区别呢?其实==是相等,===是严格相等,那他们有什么本质的区别呢?下面我就给大家细细道来。

  • =:赋值运算符

  • ==:判断是否相等:忽略了类型进行值的比较。

  • ===:判断是否相等:先进行值的比较,如果值相等,再去比较类型。即带有类型的值的比较。

==相等

比较两个值的时候,有两种情况,一种如果两个值的类型相同,就直接比较;另一种如果两个值得类型不同,则会尝试改变为相同的类型在进行比较
第一种很好理解,直接比较完事儿,第二种就更有趣一些,它到底是怎么转换的呢?下面我们一一列举

数字和字符串比较

99 == ''99"

大家猜一猜结果是什么True?False?

结果为True
其实JS在数字和字符串比较时,都是把字符串转换为数字,再对数字进行比较的,举个列子

99 == "chuichui"

JS是怎么转换的呢?

99 == NaN // false

JS尝试转换字符串'chuichui',但是该字符串并不能转换为数字,这时候转换的结果就为NaN

布尔值和其他类型比较

其实JS在布尔值和其他类型比较时,都是把布尔值转换为数字,再进行比较的,举个列子

1 == true
↓↓↓↓↓↓
1 == 1

JS会将true转化为数字1,再做比较
那"1" == true又是怎么比较的呢?

"1" == true
↓↓↓↓↓↓
"1" == 1
↓↓↓↓↓↓
1 == 1 // true

转换顺序

  1. 将true转换为1

  2. 将字符串“1”转换为数字1

  3. 数字1和数字1比较

null和undefined比较

null == undefined

大家猜一猜,结果是True?False?

结果为True
是不是感觉很奇怪,但规则就是这样。我们可以理解为都是“没有值”
只不过一个是没有值得变量,一个是没有值的对象,因此他们相似

小心

有一个需要注意的地方,有些转换你可能猝不及防

false == ""
True?False?

结果为True
转换过程

  1. false转化为0

  2. 空字符串""转换为0,没错就是0 !

  3. 数字0和数字0比较

下面我们在说说严格相等 ===

===严格相等

有了前面的相等的定义,我想大家能猜个八九不离十,严格相等就是类型和值完全相同,这里不存在以上所存在的转换问题

最后

操作数1 == 操作数2, 操作数1 === 操作数2

比较过程:

  双等号==:

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

  (2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

    1)如果一个是null,一个是undefined,那么相等

    2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较  

  三等号===:

  (1)如果类型不同,就一定不相等

  (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)

  (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

  (4)如果两个值都是true,或是false,那么相等

  (5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等

  (6)如果两个值都是null,或是undefined,那么相等

以上是“JS中==、===如何区分”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: JS中==、===如何区分

本文链接: https://www.lsjlt.com/news/67384.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS中==、===如何区分
    这篇文章主要为大家展示了“JS中==、===如何区分”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中==、===如何区分”这篇文章吧。==、===都是相等运...
    99+
    2022-10-19
  • 如何分析ecmascript与js的区别
    如何分析ecmascript与js的区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。区别:1、js需要通过document、...
    99+
    2022-10-19
  • JS中Require与Import区别对比分析
    require 和 import对比区别 在 JavaScript 中,require 和 import 都是用来导入模块的。require 是 Node.js内置的方法,而 i...
    99+
    2023-03-02
    JS Require对比Import区别 Require Import区别
  • js如何实现blockchain区块链
    这篇文章给大家分享的是有关js如何实现blockchain区块链的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。了解blockchain的概念很简单(区块链,交易链块):它是分布式...
    99+
    2022-10-19
  • windows分区助手如何分区
    本篇内容主要讲解“windows分区助手如何分区”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows分区助手如何分区”吧!分区助手分区的方法打开我们的分区助手,把鼠标放在要分区的硬盘上,...
    99+
    2023-07-04
  • 数据库中分区表如何删除分区、分区对应的tablespace、datafile
    这篇文章给大家分享的是有关数据库中分区表如何删除分区、分区对应的tablespace、datafile的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 ...
    99+
    2022-10-18
  • JS节流和防抖的区分和实现
    本篇内容主要讲解“JS节流和防抖的区分和实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS节流和防抖的区分和实现”吧!节流概念(Throttle)按照设定的...
    99+
    2022-10-19
  • js中区分深拷贝与浅拷贝的实战过程
    目录一、自我理解二、数据存储形式(1)基本数据类型存储于栈中(2)引用数据类型存储与堆中三、怎样实现深拷贝?(1)借助JSON对象的parse和stringify(2)手写递归(3)...
    99+
    2022-11-13
  • JS中的var/let/const和暂时性死区实例分析
    本篇内容介绍了“JS中的var/let/const和暂时性死区实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!js中变量的特征js的变...
    99+
    2023-07-05
  • JS中call和apply的区别
    一、参数传递方式不同 call方法接受的是若干个参数列表,名列前茅个参数表示要改变上下文的对象,后面的参数表示要传递给函数的参数。 apply方法接收的是两个参数,名列前茅个参数表示要改变上下文的对象,第二个参数则是一个包含多个...
    99+
    2023-10-29
    区别 JS call
  • js中clientHeight、offsetHeight、scrollHeight的区别
    本篇内容主要讲解“js中clientHeight、offsetHeight、scrollHeight的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js中c...
    99+
    2022-10-19
  • JS中null和undefined的区别
    目录前言定义异同点实际应用总结1.JS 中如何判断 undefined2.JS 中如何判断 null前言 在JavaScript中,null和undefined是两个常见的数据类型,...
    99+
    2023-05-20
    JS null undefined
  • windows分区助手如何分区c盘
    本篇内容介绍了“windows分区助手如何分区c盘”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分区助手分区c盘的方法打开我们的分区助手。进...
    99+
    2023-07-04
  • windows分区助手如何合并分区
    这篇“windows分区助手如何合并分区”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“windows分区助手如何合并分区”文...
    99+
    2023-07-04
  • 如何分离vue文件中css、js代码
    今天小编给大家分享一下如何分离vue文件中css、js代码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。场景因为早期是iOS...
    99+
    2023-06-29
  • js省市区级联查询的示例分析
    这篇文章主要为大家展示了“js省市区级联查询的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js省市区级联查询的示例分析”这篇文章吧。实现方式千差万别,...
    99+
    2022-10-19
  • PLSQL如何根据分区表的分区名批量truncate分区
    这篇文章将为大家详细讲解有关PLSQL如何根据分区表的分区名批量truncate分区,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关于“PLSQL如何根据分区表的分区名批...
    99+
    2022-10-19
  • win7如何分区
    新买的笔记本或者台式机,出厂状态下一般都只有一个分区,但是只有一个盘符,多多少少会混乱软件,而且也容易和系统文件混合,这时我们就会想到给系统分区.那么怎样给win7系统硬盘分区呢下面小编就为大家整理了win7系统分区教程,一起来看看吧。1、...
    99+
    2023-07-19
  • Hive中如何实现分区表
    这篇文章主要为大家展示了“Hive中如何实现分区表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hive中如何实现分区表”这篇文章吧。分区表对于一张比较大的表,将其设计成分区表可以提升查询的性能...
    99+
    2023-06-02
  • Ubuntu中如何添加swap分区
    这篇文章主要介绍“Ubuntu中如何添加swap分区”,在日常操作中,相信很多人在Ubuntu中如何添加swap分区问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ubuntu中如何添加swap分区”的疑惑有所...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作