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,抛出错误
posted on 2021-01-28 22:12  稻草人2013  阅读(86)  评论(0)    收藏  举报