变量提升与函数提升
- 变量声明提升:
- 通过Var定义(声明)的变量,在定义语句之前可以访问到
- 值:undefined
例子:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>常见面试题:</title>
</head>
<body>
<script>
// 输出结果为undefined
var a = 1
function fun() {
console.log(a)
var a = 4
}
fun()
// =====>上面代码等价于:
var a = 1
function fun() {
var a;
console.log(a)
a = 4
}
fun()
</script>
</body>
</html>
- 函数声明提升:
- 通过function声明的函数,在之前就可以直接调用
- 值:函数定义(对象)
- 问题:变量提升和函数提升是如何产生的?