ES6 是一份在 2015 年正式发布的 JavaScript 标准,也被称为 ECMAScript 2015。在这个新标准中,新增了一些非常方便的变量声明方式:'let' 和 'const'。
'let'
'let' 成为声明变量的更好方式,因为它允许你将变量的作用域限制在块级范围内。
使用 'let' 声明的变量在声明后,只能在当前的代码块中使用,而在外部都不能使用。比如下面这段代码:
-- -------------------- ---- ------- -------- ------------- - -- ---- -- --- - --- ------- - ---- --- ---------- - ---- - --- ---------- - ---- --- --- ----- -- ---------- - --------------------- -- -------- --------------- ------- -- --- ------- ------------------------ -- -------- --------------- ---------- -- --- ------- -
在上面的代码中,'allowed' 和 'notAllowed' 变量被声明在了不同的块级作用域中,因此在声明的块级作用域之外使用这些变量会引发 'ReferenceError'。
'const'
'const' 跟 'let' 一样,只存在于声明它的那个代码块中,但是这个变量不允许重新赋值。相信每个前端开发者都有重构代码的经历,使用了一个数值后却需要修改,这时候 const 就可以很好地解决这个问题。
下面是一个使用 'const' 定义常量的例子:
const key = "API_KEY"; key = "NEW_KEY"; // TypeError: Assignment to constant variable.
在上面的例子中,我们发现当我们尝试修改 'key' 常量值时,出现了 'TypeError' 错误,因为常量值不能被修改。
'let' 和 'const' 使用时的建议
我们可以通过以下建议更好的使用 'let' 和 'const':
- 'let' 和 'const' 尽量取代 'var'。 'var' 的变量声明方式更弱化,不限作用域会导致全局污染和变量被覆盖等问题;
- 如果知道一个变量不需要重新赋值,使用 'const' 。
- 如果需要重新赋值使用 'let' 否则用 'const'。
- 常量使用大写字母和下划线分隔。
总结
'let' 适用于在代码块中定义局部变量,而 'const' 更适用于定义常量,因为这样有助于代码的可维护性和可读性。在使用 'let' 和 'const' 声明变量时,需要格外注意变量作用域和常量是否可被修改的问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645855cd968c7c53b0aba3f2