<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//1 ====================================================
var a;
if ('a' in window) {
var a = 10;
}
alert(a); // 10
// 注: in 是一个关键字 用于判断 '属性' in 对象 当前这个属性是否是对象的属性
//2 ====================================================
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo); // 10
// 预解析阶段:
// var foo;
// 代码执行阶段:
if(!foo){
foo = 10;
}
alert(foo);
}
bar();
// 代码拆分:
// 预解析阶段:
var foo;
function bar(){}
// 代码执行阶段:
foo = 1;
bar();
//3 ============================================================
var num = 123;
function f1(num) {
// var num = 456;
console.log(num); // 456
}
function f2() {
var num = 456;
f1(num);//f1(456)
}
f2();
//4 =====================================================================
function fn(){
var a = 1, b = 1, c = 1;
// var a = 1;
// var b = 1;
// var c = 1;
}
fn();
console.log(c); //1 e
console.log(b); //1 e
console.log(a); //e e
function fn1(){
var a = b = c = 1;
var a = 1;
b = 1;
c = 1;
}
fn1();
console.log(c); // 1
console.log(b); // 1
console.log(a); // e
//5 ================================================================
var a ;
function a(){
console.log('呵呵')
function a(){
a = 4;
console.log('哈哈')
}
a();
console.log(a); // 4
}
a();
console.log(a); // 外面的a
//6 ===================================================================
var a = 1;
function a(){
a++;
}
console.log(a) //1
// 7 =====================================================================
var a = { x : 1 }
var b = a;
a.x = a = { n : 1};
console.log(a.x); // undefined
console.log(b.x); // {n : 1}
</script>
</body>
</html>