JavaScript / ES6新关键词 let 是否在任何情况下都优于 var?

2022-12-20 0 298

谢邀,还吗没用有甚么情形 var 会强于 let。let 主要就有上面四点相同,与此同时我也指出是四个缺点:

返回值更为明晰

不存有表达式返回值手动提高的难题导致常量被全面覆盖的难题,比如:

let a = 1; var b = 1; if (true) { let a = 2; var b = 2; } console.log(a) // a is 1 console.log(b) // b is 2

返回值更容易掌控

let 的返回值是根据代码块(enclosing block)来判定的,而 var 的返回值是根据函数块(function block)来判定的。这样的话,如果我们的表达式都使用 let/const 来声明,那么以前的立即执行函数就不需要了,我们只要加一个代码块就好了,比如:

{ let a = 1; } console.log(a) // a is not defined

Runtime手动检查重复声明的函数并报错

在同一个返回值内不允许重复声明表达式,比如:

if (true) { let a = 1; let a = 2; }

Runtime会报错:Uncaught SyntaxError: Identifier a has already been declared

有了更为明晰的返回值,我们的代码就能够更好被预测,也更好维护。

有了更容易掌控的返回值可以让我们减少很多立即执行的函数。

Runtime的手动检查可以避免不必要,甚至是错误的代码声明。

所以既然所有的相同都是 let 的缺点,那确实很难找到 var 更优的使用场景了

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务