在JavaScript中使用var定义变量,但是在typescript中定义变量推荐使用let ,let声明的变量只在其所在的代码块内有效
1.要想正常使用let的前提:在.ts文件最上面添加(严格模式) "use strict";
2.let声明的变量只在其块级作用域内生效
会报以下错误 说找不到a这个变量
3. for循环应用场景
var定义变量时,for循环在正常的情况下是可以正常输出的
但当for循环内出现闭包函数的时候就全部输出最后一个值(原理见 js->闭包循环问题)
这个时候我们往往会利用立即执行函数来改变这种输出状态
但是使用let定义变量就可以直接解决这个问题
注意:
- let定义的变量不会变量提升
- let不允许重复声明(即使上一次是使用var声明的)
- let不会泄露循环变量为全局变量
等等..
相关文档