1.let的声明
JavaScript中用var关键字来声明变量,而在ES6中,还可以使用新增的let的关键字来声明变量。与var不同的是let声明的变量只能在代码块中有效。
{
let a=5;
var b=6;
console.log(a);
console.log(b);
}
执行结果:
能正常输出,但如果我们把输出放在括号外面,例如下面的代码:
{
let a=5;
var b=6;
}
console.log(a);
console.log(b);
执行结果:
说明变量a在未被声明的范围内使用。
2.先声明后使用
使用var声明变量时,可以先使用后声明,不会报错,而使用let声明变量时,如果未先声明变量却去使用它的话,就会出现错误。例如下面这段代码:
console.log(a);
var a=5;
执行上面这段代码后,控制台出现的结果:
console.log(b);
let b=10;
执行结果:
3.重复变量名
使用var声明变量时,允许在相同作用下声明多个相同 变量,但是后声明变量会覆盖先声明变量。例如下面这段代码:
var a=10;
var a=15;
console.log(a);
执行上面这段代码,控制台输出结果如下:
与var关键字不同的是,let关键字声明变量时,相同的作用域中不允许重复声明变量。例如下面这段代码:
执行上面这段代码后,控制台属性胡一下错误信息:
说明变量a已经声明了,这里不能重复声明该变量了。
4.const命令:
在ES6中使用const命令声明一个只读常量,该常量一旦声明就不能改变,并且在声明该常量的同时就必须立刻进行初始化,例如下面这段代码:
const PI=3.1415926;
console.log(PI);
执行结果如下:
但如果在输出之前重复为其赋值,例如下面的代码:
const PI=3.1415926;
PI=4;
console.log(PI);
这样控制就会输出以下错误信息: