从零开始,从舍弃var声明方式开始:
es6 新的声明变量方式 让js更像是后台语言—let和const不存在变量提升,并且也不能被重复声明:
错误的写法:
let a = 1;
let a = 2;
const a = 1;
此时会报错 “Duplicate declaration” 重复的声明
通过const定义的值无法被改变。
const b = 1;
console.log(b);
b = 3;
此时会报错 “b” is read-only 变量是只读的
可见 const其实就是声明了一个只能被读取的变量。
最常见的场合是:你去面试,考官问你,聊聊es6吧。然后你讲讲什么是提升:
那样你举下面这个例子就再合适不过了。
简单例子证明es5中存在变量提升:
test=1;
var test;
console.log(test);
//1 如果是在其他编程语言中,兄弟你这不是开玩笑呢吗,先赋值再声明完全也不合理。
a = 1;
let a;
console.log(a);
//undefined