ECMAScript6新特性一、let和const
先说结论,let和const是es6语法里的作用是分别是声明变量和常量。在es6之前常用的声明变量的语法是var
//es6
let a=1;
const pi=3.1415926;
//es6之前
var a=1;
那么既然已经存在了var为何还弄出一个let和const,在查阅资料后我发现原因有以下几点
1、var无法定义常量,个人认为程序开发还是需要严谨的常量存在
2、var可以重复声明,我后端语言开发比较多,这一点如果不是特意查阅资料,我甚至不会发现(一般开发咱也不会这么写啊)
//以下语句合法a的值最终为2
var a=1;
var a=2;
//以下语句会报错
let a=1;
let a=2;
3、var没有块级作用域,这点是和众多后端语言区别比较大的地方,举个例子:
var a=1;
if(true){
var b=2;
}
console.log(b);
输出结果:2
大部分其他语言里,if语句块内可以使用变量a,if语句外是无法使用变量b的,然而var声明的变量是全局变量,不能限定作用域,这点稍不注意很容易造成bug,如果用let和const声明,会更加严谨
let a=1;
if(true){
let b=2;
}
console.log(b);//此处无法访问变量b,抛出错误