function test(foo){
var foo;
function foo(){console.log(111)}
console.log(foo)
}
test(4) // function foo(){console.log(111)}
****************************
function test(foo=7){
var foo;
function foo(){console.log(111)}
console.log(foo)
}
test(4) //4
************************
第一個(gè)demo,波同學(xué)可不可以解釋一下這種情況嗎? 按照波同學(xué)的意思置侍,參數(shù)arguments在創(chuàng)建階段應(yīng)該是優(yōu)先級最高的厉颤,那么執(zhí)行test(4)時(shí), foo被賦值為“4”的這一步是在Context的執(zhí)行階段進(jìn)行妒挎,還是在創(chuàng)建階段進(jìn)行呢异逐?如果是在執(zhí)行階段耕肩,那這個(gè)算是賦值操作吧汉嗽,理應(yīng)會覆蓋原本函數(shù)foo的聲明吧欲逃?
第二個(gè)demo更疑惑,如果用了ES6的默認(rèn)值饼暑,最終的輸出值就只會是4
前端基礎(chǔ)進(jìn)階(三):變量對象詳解變量對象稳析,在新版本中,準(zhǔn)確的說法應(yīng)該是環(huán)境記錄對象弓叛,而環(huán)境記錄對象彰居,又區(qū)分詞法環(huán)境對象與變量環(huán)境對象,詞法環(huán)境對象用于解析當(dāng)前上下文中撰筷,由 const 聲明的標(biāo)識符引用陈惰,變量...