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
************************
第一個demo刻像,波同學可不可以解釋一下這種情況嗎? 按照波同學的意思,參數arguments在創(chuàng)建階段應該是優(yōu)先級最高的,那么執(zhí)行test(4)時, foo被賦值為“4”的這一步是在Context的執(zhí)行階段進行植旧,還是在創(chuàng)建階段進行呢栅盲?如果是在執(zhí)行階段野蝇,那這個算是賦值操作吧谁尸,理應會覆蓋原本函數foo的聲明吧?
第二個demo更疑惑稼病,如果用了ES6的默認值选侨,最終的輸出值就只會是4
前端基礎進階(三):變量對象詳解變量對象,在新版本中然走,準確的說法應該是環(huán)境記錄對象援制,而環(huán)境記錄對象,又區(qū)分詞法環(huán)境對象與變量環(huán)境對象芍瑞,詞法環(huán)境對象用于解析當前上下文中晨仑,由 const 聲明的標識符引用,變量...