谢邀,还吗没用有甚么情形 var 会强于 let。let 主要就有上面四点相同,与此同时我也指出是四个缺点:
返回值更为明晰
不存有表达式返回值手动提高的难题导致常量被全面覆盖的难题,比如:
返回值更容易掌控
let 的返回值是根据代码块(enclosing block)来判定的,而 var 的返回值是根据函数块(function block)来判定的。这样的话,如果我们的表达式都使用 let/const 来声明,那么以前的立即执行函数就不需要了,我们只要加一个代码块就好了,比如:
Runtime手动检查重复声明的函数并报错
在同一个返回值内不允许重复声明表达式,比如:
Runtime会报错:Uncaught SyntaxError: Identifier a has already been declared
有了更为明晰的返回值,我们的代码就能够更好被预测,也更好维护。
有了更容易掌控的返回值可以让我们减少很多立即执行的函数。
Runtime的手动检查可以避免不必要,甚至是错误的代码声明。
所以既然所有的相同都是 let 的缺点,那确实很难找到 var 更优的使用场景了