购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 变量与常量

在TypeScript中,变量用var、let来声明,常量用const来声明。下面来看一下三者之间的区别与联系。

3.2.1 var、let、const三者的作用域

相对于JavaScript而言,在TypeScript中多了let、const,用来弥补var的缺陷。const是对let的一个增强,不允许对一个变量再次赋值,一般用于常量。

三者的作用域如下:

● 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升(3.2.3节将介绍“变量提升”)。

● 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。

● 使用const一般声明的是常量,在后面出现的代码中不能再修改该常量的值。

3.2.2 变量与常量的区别

const用于声明常量。所谓常量,是相对于变量而言的。变量在赋值之后可以被修改,而常量则不能被修改。

观察下面的例子。

代码 3-1 type/variable/constant-scope.ts

在上面的代码中,定义了一个常量x及一个变量y,并试图改变它们的值。编译时报如下错误:

这意味着,当试图修改常量的值时,编译器是不允许的。

3.2.3 什么是变量提升

通过下面这个例子就能理解变量提升。

代码 3-2 type/variable/variable-scope.ts

输出的结果如下:

var所定义的变量在方法体中被重新定义和修改了,这就是变量提升。而let所定义的变量并未受到方法体中变量的影响,输出的仍然是最初定义的值。

提示:

在大型项目里,由于.ts文件众多,且文件之间存在着相互引用,为了防止变量误用导致不可预估的结果,尽量采用let和const代替var。 FhnD5q1x/1H7fb+r+U6pt9hjYy9s1qssKMlZMYqjftTkswcwgAHibDHcoZIImz2F

点击中间区域
呼出菜单
上一章
目录
下一章
×