开发人员注意啦!JavaScript中一直使用===是错误的
全文共3228字,预计学习时长10分钟
相比==,许多开发人员更喜欢使用===,为什么呢?
网上大多数教程都有解释过,JavaScript的强制转换太过复杂,难以预测,因此建议始终使用===。
互联网上一些教程的错误观念误导了大众,以及许多不成文的规则和受欢迎的网站都建议一直使用===。
这些都导致许多程序员放弃了一些程序语言,并将其视为缺陷,而不是深入理解领悟它们。
下面的两个案例说明了在哪些情况下最好使用==。
1. 测试空值
if (x ==null)vsif (x === undefined || x === null)
2. 读取用户的输入
let userInput = document.getElementById('amount');
let amount =999;
if (amount == userInput)
vs
if (amout ===Number(userInput))
本文将深入了解该主题,通过发现二者之间的差异,理解强制转换的概念,研究一些经典案例,并最终找到指导我们做出决定的准则。
引言
在Javascript脚本语言中,有两个运算符表示“相等”关系。
1、=== — 严格相等比较也称为三重相等比较。
2、==—抽象相等比较也称为双重相等比较。
我习惯于使用===,因为有人告诉我它比==更好用,更高级,且作为一个懒汉,我也没有特意去考证这一说法,我觉得使用===很方便。
直到我看了《你不懂JS》的作者凯尔(Kyle,@getfiy)在FrontendMasters上发表的《JavaScript 的深层基础》”,才发现我的想法大错特错。
作为一名专业的程序员,我并没有深入思考我每天工作中使用的操作符,这一惨痛事实促使我下定决心,广泛传播相关知识,使人们更多地理解和关注我们编写的代码。
真理的源泉
了解真相所在是很重要的。它不在Mozilla上,不在W3schools网站上,也不在那上百篇声称===比==更好用的文章中,而且在这篇文章中也没有。
真相在JavaScript的语言规范中,你可以在其中找到JavaScript运行模式的说明。
来源:Pexels