在Typescript中使用' var '或'让'之间有什么区别?我知道'let'允许将变量进一步定义到范围中,而不在所述范围之外使用它。对于for循环中的迭代器来说,这显然是一个很好的优势。我知道这是一个ES6定义,因此对ES6的编译在'var'和'let'方面应该看起来几乎相同。
但是,当它编译成不支持'let'的ES5 javascript时,到底发生了什么?是否存在编译器创建的奇怪命名变量,以防止在Typescript文件的上下文中使用所述变量?在整个函数中定义许多“let”变量的情况下会发生什么?我应该关注性能影响吗?
基本上,当打字稿编译时将变量发送到ES5 javascript会发生什么?
答案 0 :(得分:19)
查找这类问题答案的最简单方法,可以在TypeScript Playground中进行试用。
TypeScript重命名块范围内的变量。与使用var
定义的常规变量相比,没有性能开销。
此代码:
var i = 0;
for (let i = 0; i < 5; i++) {}
i++;
编译为:
var i = 0;
for (var i_1 = 0; i_1 < 5; i_1++) { }
i++;
Here是关于let
的更多信息。