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
![240](https://cdn2.jianshu.io/assets/default_avatar/11-4d7c6ca89f439111aff57b23be1c73ba.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)