回答es6中为什么不用var而是用let

 所属分类:web前端开发

 浏览:143次-  评论: 0次-  更新时间:2022-10-30
描述:更多教程资料进入php教程获得。 因为var在if、for循环中是没有作用域的,只有借助function的作用域来解决引用作用域外面的变量的问题;而le...
更多教程资料进入php教程获得。

因为var在if、for循环中是没有作用域的,只有借助function的作用域来解决引用作用域外面的变量的问题;而let在if、for循环中是有块级作用域的,这是var所没有的功能,所以es6中使用let关键字而不是使用var。

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

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

es6中为什么不用var而是用let

因为在之前的JavaScript(ES5之前)中,var在像 if ,for循环中是没有作用域的,只有借助function的作用域来解决引用作用域外面的变量的问题

在ES6中加入了let,它在if和for中是有块级作用域的,let拥有块级作用域,一个{}就是一个作用域,也就是let声明块级变量,即局部变量.

const 也是有块级作用域的,当我们的修饰的标识符不想再被改变赋值时用const

建议在ES6开发中优先使用const,只有想改变一个标识符的时候才使用let

注意

  • 1.const赋值后不能修改

  • 2.用const定义标识符必须赋值

  • 3.常量的定义是指向的对象不能修改,但是对象的属性可以修改

22.png

按照一般逻辑,变量应该在声明语句之后才可以使用,但在上面的代码中,是声明之前输出foo的值,且这个值为undefined,这就说明变量在声明之前就已经存在了。为什么用var会出现这种问题呢?

这里就是人们经常说的变量提升,即变量可以在声明之前使用,值为undefined。

我们console用let声明的变量bar,报错了,这就表示声明之前,变量bar是不存在的,这里就没有变量提升的现象出现。为了纠正这种现象,让大家更好的理解代码,let命令改变了语法行为,它所使用的变量一定要在声明之后使用,否则就会报错。

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

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

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

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

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

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