在 ES6 中,我们引入了 const 和 let 关键字来声明变量,与传统的 var 关键字不同。这两个新的关键字与 var 关键字的区别在于它们的作用域、变量提升和可变性。
const
const 关键字用于声明不可变的常量。一旦我们使用 const 关键字声明了一个变量,就不能再修改它的值了。这对于那些不需要更改的常量非常有用。
const PI = 3.14159; PI = 3; // TypeError: Assignment to constant variable.
在上面的例子中,我们试图修改一个常量,但是由于它是不可变的,所以会抛出一个 TypeError。
let
let 关键字用于声明变量,它们的作用域被限制在声明它们的块级作用域内。这意味着,如果我们在一个块级作用域中声明了一个变量,它只能在该作用域内使用。
if (true) { let foo = 'bar'; } console.log(foo); // ReferenceError: foo is not defined
在上面的例子中,我们在 if 语句块中声明了一个变量 foo,因此它只能在该语句块内使用。如果我们试图在语句块外部访问该变量,就会抛出一个 ReferenceError。
var
var 关键字用于声明变量,与 let 关键字不同,它们的作用域是函数级别的。这意味着,如果我们在一个函数中声明了一个变量,它可以在该函数的任何地方使用。
function foo() { var bar = 'baz'; console.log(bar); } foo(); // 'baz' console.log(bar); // ReferenceError: bar is not defined
在上面的例子中,我们在函数 foo 中声明了一个变量 bar。由于它的作用域是函数级别的,我们可以在该函数的任何地方使用它。但是如果我们试图在函数外部访问该变量,就会抛出一个 ReferenceError。
总结
在 ES6 中,我们可以使用 const、let 和 var 关键字来声明变量。const 关键字用于声明不可变的常量,let 关键字用于声明块级作用域的变量,而 var 关键字用于声明函数级别的变量。了解这些关键字的区别和用法可以帮助我们更好地编写 JavaScript 代码。
参考
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656cc270d2f5e1655d514aa9