什么是变量提升?
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
一)var声明变量存在变量提升,let和const不存在变量提升
console.log(a);// undefined ===> a已声明还没赋值,默认得到undefined值
Var a =100;
console.log(b);// 报错:b is not defined ===> 找不到b这个变量
Let b =10;
console.log(c);// 报错:c is not defined ===> 找不到c这个变量
Const c =10;
二)let、const都是块级局部变量
const 的特性和 let 完全一样,不同的只是声明时候必须赋值
三)同一作用域下let和const不能声明同名变量,而var可以
var a = 100;
console.log(a); // 100
var a = 10;
console.log(a); // 10
let a = 100;
let a = 10; // 控制台报错:Identifier 'a' has already been declared ===> 标识符a已经被声明了。