在JavaScript中声明一个新变量的方法是使用关键字let、var、const
1. let
let 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
let a;
let name = 'Alison';
//myLetVariable不能在这被引用
for (let myLetVariable = 0; myLetVariable < 5; myLetVariable++){
myLetVariable只能在这里被引用
}
//myLetVariable不能在这被引用
2. var
var是最常见的声明变量的关键字。他没有其他两个关键字的种种限制。这是因为他是传统上在JavaScript声明变量的唯一方法。使用var声明的变量在他所声明的整个函数都是可见的。
var a ;
var name = 'Alison';
//myLetVariable能在这被引用
for (var myLetVariable = 0; myLetVariable < 5; myLetVariable){
myLetVariable在整个函数中都能被引用
}
//myLetVariable能在这被引用
3. const
const允许声明一个不可变的常量,这个常量在定义域内总是可见的。
const Pi = 3.14; // 设置 Pi 的值
Pi = 1; // 将会抛出一个错误因为你改变了一个常量的值。
注意:通过var声明的变量或者非严格模式下(non-strict mode)创建的函数声明没有块级作用域。相比之下,使用let和const声明的变量是有块级作用域的。
let x = 1;
{
let x = 2;
}
console.log(x); // 输出 1
const c = 1;
{
const c = 2;
}
console.log(c); // 输出1, 而且不会报错
位于块范围之内的const c = 2并不会抛出SyntaxError: Identifier ‘c’ has already been declared这样的语法错误,因为在它自己的块中它可能是唯一一个被声明的变量。