Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript 中 == 和 === 有什么区别?

JavaScript 中 == 和 === 有什么区别?

作者头像
海拥
发布于 2022-04-13 09:23:31
发布于 2022-04-13 09:23:31
1.2K00
代码可运行
举报
文章被收录于专栏:全栈技术全栈技术
运行总次数:0
代码可运行

=====运算符一直是热门讨论的话题。让我们看看这两者有何不同。

双等号(==) 符号检查松散相等,而三等号(===) 符号检查严格相等。不同之处在于 (==) 松散相等将在进行比较之前尝试通过类型强制解析数据类型,而 (===) 严格相等将在数据类型不同时返回 false。下面我来给大家一些例子以便更好地理解它们。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*示例1*/
console.log(2== "2");//输出:true
console.log(2 === "2");//输出:false

/*示例2*/
console.log(true == "1");//输出:true
console.log(true === "1");//输出:false

/*示例3*/
console.log("I am a String" == new String("I am a String."));//Output:true
console.log("I am a String" === new String("I am a String."));//Output:false

示例 1

在示例 1 中,您可以看到使用两个等号 (==) 返回 true,因为字符串“2”在进行比较之前已转换为数字2,但使用 (===) 三个等号可以看出类型是不同的2是数字,“2”是一个字符串,然后返回 false。

示例 2

在示例 2 中,您可以看到使用两个等号 (==) 返回 true,因为在 JavaScript 中true _ 为1,_false为0。因此在松散相等的比较之前将其转换为1。但是在 (===) 严格相等中,它不会被转换并返回 false

示例 3

这是一个有趣的例子。在 (===) 严格相等中,我们可以看到它返回 false。它说明了String Literals 与 String Object 不同。然而,在 (==) 松散相等中,它在比较之前将对象转换为文字,然后返回 true。

使用“==”或“===”哪个更好?

最好在代码中使用 (===) 严格相等,因为它会增加代码的清晰度并防止任何误报。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/01/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
javascript入门到进阶 - javascript基础
JavaScript 是区分大小写的,并使用 Unicode 字符集。举个例子,可以将单词 Früh (在德语中意思是“早”)用作变量名。
公众号---人生代码
2020/07/14
7380
JavaScript 中的相等性判断
简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false ); 而Object.is的行为方式与三等号相同,但是对于NaN和-0和+0进行特殊处理,所以最后两个不相同,而Object.is(NaN,NaN)将为 true。(通常使用双等号或三等号将NaN与NaN进行比较,结果为false,因为IEEE 754如是说.) 请注意,所有这些之间的区别都与其处理原语有关; 这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构, 以上三个运算符都会计算得到 false 。
用户7293182
2022/01/17
1.1K0
JavaScript 中的相等性判断
JavaScript基础
JavaScript 从 Java 中借用其大部分语法,但也受 Awk,Perl 和 Python的影响。因此本篇博客基于对Java和Python的认识来记录JavaScript的差异点。
职场亮哥
2020/10/10
6950
你不知道的 JavaScript 中卷(1、类型)
最近在读《你不知道的 JavaScript 中卷》,不会像上卷那样通篇仔细阅读一章一章的写博客了,因为我没那么多精力了。我每天花一点时间去写一些简单且篇幅不长的博客,这样在地铁或在电梯里花一分钟就可以读完。
Karl Du
2023/10/20
3700
大话 JavaScript(Speaking JavaScript):第六章到第十章
JavaScript 花了很长时间才产生影响。许多与 JavaScript 相关的技术存在了一段时间,直到它们被主流发现。本节描述了从 JavaScript 的创建到今天发生的事情。在整个过程中,只提到了最受欢迎的项目,而忽略了许多项目,即使它们是第一个。例如,列出了 Dojo Toolkit,但也有较少人知道的qooxdoo,它是在同一时间创建的。还列出了 Node.js,尽管Jaxer在它之前就存在:
ApacheCN_飞龙
2024/01/12
6800
18 个 JavaScript 入门技巧!
最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。
前端小智@大迁世界
2020/12/09
5100
[译] 如何处理 JavaScript 比较中的临界情况
原文地址:https://medium.com/javascript-in-plain-english/how-to-handle-comparison-corner-cases-c96ae9a17d4a 原文作者:Alen Vlahovljak 译文出自:"掘金翻译计划"(https://github.com/xitu/gold-miner) 本文永久链接:https://github.com/xitu/gold-miner/blob/master/article/2020/how-to-handle-
江米小枣
2020/09/16
1.9K0
JavaScript变量和数据类型
1.JavaScript变量 javascript的变量是松散类型的(弱类型),也就是说一个变量可以用来保存任何类型的数据,每个变量仅仅是用来保存值的占位符。变量的声明用var操作符来定义,如 var message;也可以多个变量一起定义,如var a,b,c;用逗号隔开每个变量。 var message ; var message;//message为初始化,值为undefined message=12;//message值为12; message="hello";//message 值为hello;
水击三千
2018/02/27
1.5K0
1.2w字 | 初中级前端 JavaScript 自测清单 - 1
前言 最近与部门老大一起面试了许多前端求职者,其中想换个学习氛围较好的人占多数,但良好的学习氛围也是需要一点点营造出来的🌺。 为此我们组建了我们团队内部的“现代 JavaScript 突击队”,第一期学习内容为《现代 JavaScript 教程》系列,帮助小组成员系统地进行学习巩固,并让大家养成系统性学习和输出学习总结的学习方式。 本文作为我输出的第一部分学习总结,希望作为一份自测清单,帮助大家巩固知识,温故知新。 这里也下面分享我们学习小组的“押金制度”和“押金记录表”🍀 [“押金制度”和“押金记录表”]
pingan8787
2020/07/04
1.2K0
JavaScript 中的4种相等算法
👆点击“博文视点Broadview”,获取更多书讯 在 JavaScript 中如何判断两个值相等,这个问题看起来非常简单,但并非如此,在 JavaScript 中存在 4 种不同的相等逻辑,如果你不知道他们的区别,或者认为判断相等非常简单,那么本文非常适合你阅读。 ECMAScript 是 JavaScript 的语言规范,在ECMAScript 规范[1]中存在四种相等算法,如下图所示: 上图中四种算法对应的中文名字如下,大部分前端应该熟悉严格相等和非严格相等,但对于同值零和同值却不熟悉,下面我
博文视点Broadview
2023/02/23
5180
JavaScript 中的4种相等算法
分享 8 个关于高级前端的 JavaScript 面试题
英文 | https://levelup.gitconnected.com/8-advanced-javascript-interview-questions-for-senior-roles-c59e1b0f83e1
前端达人
2023/09/11
7900
分享 8 个关于高级前端的 JavaScript 面试题
javascript 隐式转换_mysql隐式转换
简单数据类型(也称为原始类型):Undefined、Null、Boolean、Number、String 和 Symbol。ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。 复杂数据类型叫 Object(对象)。Object 是一种无序名值对的集合。
全栈程序员站长
2022/11/07
1.7K0
javascript 隐式转换_mysql隐式转换
javascript(二):数据类型&数值
第一部分:数据类型 javascript数据类型通常来说是6种(ES6新增第七种Symbol类型) number:数值 string:字符串 boolean:布尔类型,true或false undefined:未赋值 null:空,值是“无”的状态 object:对象 通常number,string,boolean称为原始类型(primitive type)的值,即最基本的值,不能继续细分;而对象称为合成类型(complex type)的值,一个对象往往是多个原始类型的合成;而undefined和null是
用户1149564
2018/01/11
1.6K0
javascript(二):数据类型&数值
JavaScript基础
<input type="button" name="btn" value="请点击" onclick="alert('hello world!!!')"/>
闲花手札
2021/08/24
9140
JavaScript——数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
岳泽以
2022/10/26
9160
JavaScript——数据类型
IT课程 JavaScript基础 038_数据类型
在JavaScript中,数据类型用于表示不同种类的数据,例如数字、字符串、布尔值等。 JavaScript中的数据类型分为两大类:原始数据类型和对象数据类型。
zhaoJian.Net
2024/08/22
1160
大话 JavaScript(Speaking JavaScript):第十一章到第十五章
JavaScript 对所有数字都使用单一类型:它将它们全部视为浮点数。但是,如果小数点后没有数字,则不显示小数点:
ApacheCN_飞龙
2024/01/12
7370
《现代Javascript高级教程》类型转换
在JavaScript中,理解数据类型,如何区分它们,以及它们如何被转换是至关重要的。在这篇文章中,我们将探讨这些主题,以帮助巩固你的JavaScript基础。
linwu
2023/07/27
3670
Python和JavaScript在使用上有什么区别?
JavaScript和Python这两种语言非常流行和强大,但它们在部分语法的使用上却有着一些不同,如果你恰好对这些区别对比感兴趣,那么这篇文章中的内容可能会为你提供一些帮助。
葡萄城控件
2021/03/04
5.3K0
Python和JavaScript在使用上有什么区别?
Javascript 中数据类型那些可能会中招的细节
Javascript的数据类型对于大家来说一点都不默认,主要基本数据局类型和引用数据类型,都是入门必学的知识点,而且在日常开发中,频繁使用。大家是否都掌握其中的一些细节呢?下面我们就详细探讨一下。
@超人
2021/03/18
2650
相关推荐
javascript入门到进阶 - javascript基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验