TypeScript里,let与var有何关键差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计685个文字,预计阅读时间需要3分钟。
目录
1.作用域不同
2.let没有变量提升
3.let变量不能重复声明
4.for循环中的let与var
1. 作用域不同 2. 用var声明的变量,只有函数作用域和全局作用域,没有块级作用域而let可以实现块级作用域。
目录
- 1、作用域不同
- 2、let没有变量提升
- 3、let变量不能重复声明
- 4、for循环中的let与var
1、作用域不同
用var声明的变量,只有函数作用域和全局作用域,没有块级作用域。而let可以实现块级作用域,只能在代码块{}内有效,在{}之外不能访问,如下代码所示:
{ let a = 0; var b = 1; } console.log(a) // ReferenceError: a is not defined console.log(b) // 1
2、let没有变量提升
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为:暂时性死区,英文为:temporal dead zone,简称 TDZ。
本文共计685个文字,预计阅读时间需要3分钟。
目录
1.作用域不同
2.let没有变量提升
3.let变量不能重复声明
4.for循环中的let与var
1. 作用域不同 2. 用var声明的变量,只有函数作用域和全局作用域,没有块级作用域而let可以实现块级作用域。
目录
- 1、作用域不同
- 2、let没有变量提升
- 3、let变量不能重复声明
- 4、for循环中的let与var
1、作用域不同
用var声明的变量,只有函数作用域和全局作用域,没有块级作用域。而let可以实现块级作用域,只能在代码块{}内有效,在{}之外不能访问,如下代码所示:
{ let a = 0; var b = 1; } console.log(a) // ReferenceError: a is not defined console.log(b) // 1
2、let没有变量提升
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为:暂时性死区,英文为:temporal dead zone,简称 TDZ。

