关于ES6语法基础讲解(var与let,const的区别)-1
2018-03-26 本文已影响0人
d4258cabb857
1.var 是一个函数作用域,let和const是一个块级作用域;
定义一个块级作用域:
{
let a = 1;
var b =2;
}
console.log(a);
console.log(b);
打印结果:a is not defined
2
var 在块级作用域里可以提升到外边而let const 不行;
const是声明常量的,
2.变量提升
所谓变量提升就是书写的位置和代码定义的位置不同,举个例子:
console.log("a" + a);
var a = 1;
这样打印出的结果:
a undefined
讲解:var可以做到变量提升作用他相当于:
var a;
console.log("a" + a);
a = 1;
从上面可以看到其实a在上面已经定义了,只是console的时候没有去定义a的值 所以打印出 undefined;
想对比ES6的 let就没有var的变量提升作用了,看下面的例子
console.log("b" + b);
let b = 2;
打印结果:b is not defined;
讲解:let 没有变量提升的作用 所有在console之前就没有定义b,所以会打印出 b is not defined;