回答es6中let和var的区别是什么

 所属分类:web前端开发

 浏览:141次-  评论: 0次-  更新时间:2022-10-30
描述:更多教程资料进入php教程获得。 区别:1、let变量的作用域是在定义它的块级代码中,而var变量的作用域是在包括它的函数作用域中;2、let变...
更多教程资料进入php教程获得。

区别:1、let变量的作用域是在定义它的块级代码中,而var变量的作用域是在包括它的函数作用域中;2、let变量不能重复声明,而var变量可以重复声明;3、代码执行之前的扫描会将var变量初始化为undefined,而let变量没有初始化。

前端(vue)入门到精通课程:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。

es6中let和var的区别是什么

let是在ES6中新引入的关键字,用来改进var带来的各种问题。

let和var相比,大致有下面几个方面的不同:

1、作用域

  • 通过let定义的变量,作用域是在定义它的块级代码以及其中包括的子块中,并且无法在全局作用域添加变量。

  • 通过var定义的变量,作用域为包括它的函数作用域或者全局作用域。

2、重复声明

  • 通过let定义的变量,在同一个作用域内,不可以重复声明。

  • 通过var定义的变量,在同一个作用域内,重复声明,在生成执行上下文的时候,会无视后面的声明。

3、临时死区引起的提升等问题

我们知道在代码执行之前,会先扫描所有域内的var声明的变量,将其先进行初始化为undefined,然后再执行代码,也就是所谓的“提升”现象。

但对于let声明的变量而言,则有所不同。在代码执行之前的扫描,同样也会对let变量进行“提升”,但并没有将其置为undefined。let定义的变量虽然经历了提升,但在没有执行到初始化它的代码前,该变量并没有被初始化,如果此时访问的话,会被置为ReferenceError错误。从代码块开始到执行到let变量初始化完毕这段时间,let变量已经被声明,但不可访问。这段时间被成为临时死区。

【相关推荐:javascript视频教程、web前端】

以上就是es6中let和var的区别是什么的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: es6,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!