‘let’ is available in ES6 (use ‘esversion: 6’ flag to enable),解决 ESLint 错误

阅读时长 3 分钟读完

在之前的JavaScript版本中,我们只能使用 var 关键字来声明变量。但是 var 在作用域和声明变量的方式上存在一些问题,这导致了很多难以追踪的错误。ES6中引入了一个新的变量关键字 let 以解决这个问题。

‘let’ 关键字的特性

作用域规则

  • 在声明的块中有效,超出这个块后该变量将不存在。
  • 同一个块中不允许重复声明。

示例代码:

不会被预处理

var 在代码执行前会被提前声明,但是 let 并不会。这个特性可以避免变量被提前声明,增加代码的可读性。

示例代码:

支持块级作用域

在ES5及其之前的版本中,只有函数作用域和全局作用域,没有块级作用域。在ES6中,块级作用域被引入,随之而来的是 letconst 关键字。

示例代码:

在上面的代码中,使用 let 关键字声明的变量 i 在每次循环中都会被重新声明,因此在每次循环中都有不同的内存引用。这是闭包问题的一种新的解决方案。

如何在ESLint中启用‘esversion:6’并使用‘let’

在ESLint中需要在配置文件中设置 eslintConfig 属性,指定 es6es2015 作为解析器和指定 ecmaVersion 属性为 6

示例 eslintrc.json 文件的配置:

在JSHint中启用块级作用域:

总结

在开发过程中,使用 let 关键字可以减少开发过程中难以追踪的错误。在下一版的JavaScript规范中, let 将成为一个标准特性,将会被广泛使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65b69a0dadd4f0e0fff432f8

纠错
反馈