📅  最后修改于: 2023-12-03 15:16:59.541000             🧑  作者: Mango
在JavaScript中,有三种方式可以声明变量:var
,let
和const
。在这篇文章中,我们将重点介绍var
和const
之间的区别。
var
是在ES5中引入的关键字,用于声明变量。它的作用域是函数级别的,这意味着如果你在一个函数中声明一个变量,那么这个变量将只在该函数内部可见。
function foo() {
var x = 10;
console.log(x);
}
foo();
console.log(x); // Uncaught ReferenceError: x is not defined
在上面的例子中,变量x
在foo()
函数的作用域内被声明,因此它只能在这个函数内部访问。尝试在函数外部访问x
会导致一个无法捕获的引用错误。
const
是在ES6中引入的关键字,也用于声明变量。与var
不同的是,const
声明的变量的值是不可变的,也称为“常量”。
const PI = 3.14159265359;
PI = 3; // Uncaught TypeError: Assignment to constant variable.
从上面的例子中可以看出,如果您尝试更改PI
的值,JavaScript将抛出TypeError
。
另外,与var
不同,您必须在声明常量的同时初始化它。
const PI; // Uncaught SyntaxError: Missing initializer in const declaration
var
声明的变量的作用域是函数级别的。const
声明的变量需要初始化且其值是不可变的。当您需要在整个脚本中共享变量时,请使用var
;当您需要创建一个不可变量但又不想使用全局变量时,请使用const
。