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

举报
海拥 发表于 2022/04/30 17:16:43 2022/04/30
【摘要】 💂 个人网站:【 海拥】【摸鱼小游戏】🤟 风趣幽默的人工智能学习网站:👉人工智能💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】💬 便宜且实用的计算机相关书籍:👉进来逛逛== 和===运算符一直是热门讨论的话题。让我们看看这两者有何不同。双等号(==) 符号检查松散相等,而三等号(===) 符号检查严格相等。不同之处在于 (==) 松散相等将在进行比较之前尝试通过类型强制...

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

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

/*示例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。

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。