我尝试过 babel transpiler,它会将所有的let、const和var转换为var,那么总体上来说,在我们的代码使用中有什么区别呢?
我已经阅读了文档,我知道let、const和var之间的区别,但如果它们最终都被转换成var,那还有什么区别呢?这意味着在性能甚至作用域方面都不应该有任何有意义的差异!
我已经阅读了文档,我知道let、const和var之间的区别,但如果它们最终都被转换成var,那还有什么区别呢?这意味着在性能甚至作用域方面都不应该有任何有意义的差异!
更新(2019年2月14日):根据答案,我理解作用域确实很重要,即使它们被转换为var,babel也保留了作用域的含义。我的问题仍然是关于性能方面是否有任何有意义的区别?
我附上了转译器的输入和输出,以及一个更复杂的场景
输入:
let a = 1;
for (let a = 0; a !== 0;) {
for (let a = 0; a !== 0;) {}
}
输出
"use strict";
var a = 1;
for (var _a = 0; _a !== 0;) {
for (var _a2 = 0; _a2 !== 0;) {}
}