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

WBOY
发布: 2022-03-31 18:53:44
原创
2754 人浏览过

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

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

本教程操作环境: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的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
es6
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板