<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
// javascript预解析包括变量提升和函数提升
// 案例二
var num = 20;
function fn() {
console.log(num);
var num = 20;
console.log(num);
}
fn();
// 相当于以下代码
// var num;
// function fn(){
// var num;
// console.log(num);
// num = 20;
// console.log(num);
// }
// num = 20;
// fn();
// 案例三
var a = 18;
f1();
function f1() {
var b = 9;
console.log(a);
console.log(b);
var a = '123';
}
// 相当于以下代码
// var a;
// function f1() {
// var b;
// var a;
// b = 9;
// console.log(a);
// console.log(b);
// a = '123';
// }
// a = 18;
// f1();
// 案例四
f1();
console.log(c);
console.log(b);
console.log(a);
function f1(){
var a = b = c = 9;//b 和 c 直接赋值 没有var 声明 当全局变量看
console.log(a);
console.log(b);
console.log(c);
}
// 相当于以下代码
function f1(){
var a;
a = 9;
b = 9;
c = 9;
console.log(a);//a = 9;
console.log(b);//b = 9;
console.log(c);//c = 9;
}
f1();
console.log(c);//c = 9;
console.log(b);//b = 9;
console.log(a);//a = undefined
</script>
</head>
<body>
</body>
</html>