这两个关键字在范围界定方面的区别已经 在这里 进行了彻底讨论,但我想知道两者之间是否存在任何性能差异,如果有,它可以忽略不计,或者在什么时候会变得很重要?
原文由 Nickolai 发布,翻译遵循 CC BY-SA 4.0 许可协议
这两个关键字在范围界定方面的区别已经 在这里 进行了彻底讨论,但我想知道两者之间是否存在任何性能差异,如果有,它可以忽略不计,或者在什么时候会变得很重要?
原文由 Nickolai 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
在 http://jsperf.com 上测试后,我得到以下结果: jsperf 宕机了一段时间;请参阅下面的替换代码。
为了检查这一点,我将根据 这个答案 使用以下性能测试,这让我编写了这个函数:
在 Chrome 和 Firefox 中对此进行测试后,这表明
let
比var
更快,但仅当在与函数的主要范围不同的范围内时。在主要范围内,var
和let
在性能上大致相同。在 IE11 和 MS Edge 中,let
和var
在这两种情况下的性能大致相同。按蓝色大按钮,在您最喜欢的浏览器中亲自查看。
目前
let
只有较新的浏览器支持,但较旧的浏览器仍然使用相对较多,这将是一般不使用它的原因。如果您想在旧浏览器无法正常运行的地方使用它,应该没有问题。编辑: 修改后的答案,因为 jsperf 不工作(参见旧版本的修订历史)。