TypeScript 变量声明

TypeScript 变量声明

变量的意思就是在程序运行过程中其值可以变化的量,

我们可以使用以下四种方式来声明变量:

let [变量名] : [类型] = 值;

let uname:string = "Runoob";

let [变量名] : [类型];

声明变量的类型,但没有初始值,变量值会设置为 undefined:

let uname:string;

let [变量名] = 值;

声明变量并初始值,但不设置类型,该变量可以是任意类型:

var uname = "Runoob";
# ts 会自动识别 uname 类型为字符串

let [变量名];

声明变量没有设置类型和初始值,类型可以是任意类型,默认初始值为 undefined:

let uname;

使用 typeOf 获取变量类型

let msg = "Hello";
let tp = typeof(msg);
console.log(tp);

let 和 var 关键字的区别

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

let 关键字声明变量,可以有效避免变量作用域过大造成的变量污染问题。