TypeScript中let和var有什么本质区别?

2026-04-03 06:580阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计717个文字,预计阅读时间需要3分钟。

TypeScript中let和var有什么本质区别?

目录

1.作用域不同

2.let 没有变量提升

3.let 变量不能重复声明

4.for 循环中的 let 与 var

1. 作用域不同 2. 用 var 声明的变量,只有函数作用域和全局作用域 3. 没有 block 级作用域

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。

//报错 console.log(a) let a=10

3、let变量不能重复声明

使用var,多次声明同一个变量,不会报错,只会得到一个变量。

var a=1; var a=2;

上述例子中,所有的a的声明实际上都引用了一个相同的a。在多人开发一个项目时,容易出现问题。

阅读全文
标签:区别介绍

本文共计717个文字,预计阅读时间需要3分钟。

TypeScript中let和var有什么本质区别?

目录

1.作用域不同

2.let 没有变量提升

3.let 变量不能重复声明

4.for 循环中的 let 与 var

1. 作用域不同 2. 用 var 声明的变量,只有函数作用域和全局作用域 3. 没有 block 级作用域

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。

//报错 console.log(a) let a=10

3、let变量不能重复声明

使用var,多次声明同一个变量,不会报错,只会得到一个变量。

var a=1; var a=2;

上述例子中,所有的a的声明实际上都引用了一个相同的a。在多人开发一个项目时,容易出现问题。

阅读全文
标签:区别介绍