【发布时间】:2018-12-22 04:57:20
【问题描述】:
在这个非常常见的问题上,文档之间存在一些有趣的差异。
根据 TS 文档,使用 var 声明的变量会从包含函数中泄漏出来,但在 MSDN 上它声明 var 数据不会泄漏,而是可以在整个包含函数中访问。与 ECMAScript 的处理方式相比,这可能只是 Typescript 处理 var 的方式不同,希望 SO 对此提供反馈。
块作用域 当一个变量使用 let 声明时,它使用一些 调用词法作用域或块作用域。 不同于用声明的变量 作用域泄漏到其包含函数的变量,块作用域 变量在其最近的包含块之外不可见或 for循环。
But according to the MSDN docs
let 声明的变量的作用域在它们所在的块中 被定义,以及在任何包含的子块中。这样,让 非常像 var。 主要区别在于a的范围 var 变量是整个封闭函数:
【问题讨论】:
标签: javascript typescript var let