文章目录
变量声明:var
在看 let、const 声明变量之前,先来看一下 var 声明变量的特点
var 声明变量的特点
- 变量声明提升
- 同一变量可以重复的进行定义
- 变量被挂载到 window 上
变量的声明提升
所谓的变量声明提升,就是变量无论在何处声明,都会被默认的认为是在当前作用域的顶部进行声明的。即就是下列两种情况:
- 全局作用域下,声明的变量会默认提升到全局作用域的最顶部
- 函数作用域下,声明的变量会默认提升到函数作用域的最顶部
全局作用域
console.log(a); //undefined
var a = 10;
// 上面的代码相当于
var a;
console.log(a); //undefined
a = 10;
函数作用域
function test(flag) {
if (flag) {
var a = 10;
console.log(a);
}
console.log(a);
}
test(false); // undefined
test(true); //10
// 上面的代码相当于
function test(flag) {
var a;
if (flag) {
a = 10;
console.log(a);
}
console.log(a);
}
可重复定义
var a = 10;
console.log(a);<