fn1 調(diào)用的時(shí)候不會(huì)立即執(zhí)行
而是會(huì)生成一個(gè)抽象語(yǔ)法樹(shù)
校驗(yàn)里面的每句話 如果有錯(cuò)誤就停止執(zhí)行
沒(méi)錯(cuò)再?gòu)念^開(kāi)始執(zhí)行
一個(gè)函數(shù)能訪問(wèn)那些變量 在做詞法分析的時(shí)候就確定了
詞法樹(shù)分析的是語(yǔ)義
只能確認(rèn)a就是這個(gè)函數(shù)內(nèi)部的a
不能確定的是“值”
var global = 1;
function fn1(param1){
var local1 = 'local1';
var local2 = 'local2';
function fn2(param2){
var local2 = 'fn2 local2';
console.log(local1);
console.log(local2);
}
function fn3(){
var local2 = 'fn3 local2';
fn2(local2);
}
}
經(jīng)典面試題
var a = 1;
function b(){
console.log(a) // a一定是1嗎?
}
你在看看
var a =1;
function b(){
console.log(a);
}
...若干代碼后 突然一句
a = 2;
b(); //