varx=1;functionfoo(x=x){//...}foo()//ReferenceError:xisnotdefined上面代碼中,參數(shù)x=x形成一個單獨(dú)作用域。實(shí)際執(zhí)行的是letx=x,由于暫時性死區(qū)的原因,這行代碼會報(bào)錯”x未定義“。以上是阮一峰老師的教程內(nèi)容http://es6.ruanyifeng.com/#do...想請教一個問題,如果是let聲明的話,那么為什么如果在函數(shù)體內(nèi)用var重復(fù)聲明變量x沒有報(bào)錯呢?一旦設(shè)置了參數(shù)的默認(rèn)值,函數(shù)進(jìn)行聲明初始化時,參數(shù)會形成一個單獨(dú)的作用域(context)。等到初始化結(jié)束,這個作用域就會消失。這種語法行為,在不設(shè)置參數(shù)默認(rèn)值時,是不會出現(xiàn)的。如果是這個原因,那么為什么用let重復(fù)聲明就會報(bào)錯呢,畢竟是不同的作用域-------------------分隔線-------------------呃,非常感謝大家的回答,我理解什么是let的暫時性死區(qū)。。我不明白的是,為什么說函數(shù)參數(shù)是let聲明的
請問函數(shù)參數(shù)聲明是let聲明的嗎?
開心每一天1111
2019-05-10 15:17:02