JavaScript 中 == 和 === 有什么区别?
【摘要】 💂 个人网站:【 海拥】【摸鱼小游戏】🤟 风趣幽默的人工智能学习网站:👉人工智能💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】💬 便宜且实用的计算机相关书籍:👉进来逛逛== 和===运算符一直是热门讨论的话题。让我们看看这两者有何不同。双等号(==) 符号检查松散相等,而三等号(===) 符号检查严格相等。不同之处在于 (==) 松散相等将在进行比较之前尝试通过类型强制...
==
和===
运算符一直是热门讨论的话题。让我们看看这两者有何不同。
双等号(==
) 符号检查松散相等,而三等号(===
) 符号检查严格相等。不同之处在于 (==
) 松散相等将在进行比较之前尝试通过类型强制解析数据类型,而 (===
) 严格相等将在数据类型不同时返回 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)