变量的意思就是在程序运行过程中其值可以变化的量,
我们可以使用以下四种方式来声明变量:
let uname:string = "Runoob";
声明变量的类型,但没有初始值,变量值会设置为 undefined:
let uname:string;
声明变量并初始值,但不设置类型,该变量可以是任意类型:
var uname = "Runoob";
# ts 会自动识别 uname 类型为字符串
声明变量没有设置类型和初始值,类型可以是任意类型,默认初始值为 undefined:
let uname;
let msg = "Hello";
let tp = typeof(msg);
console.log(tp);
let 用于声明变量,其作用域为块级作用域。和 var 不同,let 声明的变量只能在声明的块级作用域内访问,而不能在外部访问。
if (true) {
let x = 10
console.log(x) // 10
}
console.log(x) // 报错,x 未定义
var 同样用于声明变量,其作用域为函数作用域或全局作用域。
在函数内部声明的变量只能在函数内部访问,而在全局作用域声明的变量则可以在任何地方访问。
此外,var 声明的变量可以被重复声明,而重复声明时,只有最后一个声明有效。
function foo() {
var x = 1
if (true) {
var x = 2
}
console.log(x) // 2
let 关键字声明变量,可以有效避免变量作用域过大造成的变量污染问题。