前言
众所周知ES5之前javascript语言只有函数作用域和全局作用域,使用var来声明变量,var声明的变量还存在变量提升使人困惑不已。我们先来复习一下ES5的var声明,再对比学习let和const 。
var
var声明之函数作用域和全局作用域。
来段代码体会一下:
function getName() {
if (1 + 1 === 2) {
var name = 'xixi';
}
console.log(name);
}
getName();//xixi
在c或java语言中name本应该只在if块中使用的,但是在if的外面也可以访问到,这个就是 js没有块级作用