函数作用域
-
// 函数声明提升优先级比var变量高 var a = 'apple' function fighting() { console.log(a) var a = 'angel' console.log(ss()) function ss() { return a; } } fighting()
-
// 实际运行顺序 var a = 'apple' function fighting() { function ss() { return a; } var a; console.log(a) a = 'angel' console.log(ss()) } fighting()
-
var tmp = new Date() function f() { console.log(tmp) // undefined if (false) { var tmp = 'hello world' } } f()
-
var b = 'boy' console.log(b) // boy function fighting() { console.log(a) // undefined console.log(c) // undefined if (a === 'apple') { a = 'Alice' } else { a = 'Ada' } console.log(a) // Ada var a = 'Andy' middle(); function middle() { console.log(c++); // NaN var c = 100 console.log(++c) // 101 small() function small() { console.log(a) // 'Andy' } } var c = a = 88; function bottom() { console.log(this.b) // boy b = 'baby' console.log(b) // baby } bottom(); } fighting() console.log(b) // baby