函數(shù)的解構(gòu)沒(méi)太懂這個(gè)里面紅箭頭那些地方,1.為什么會(huì)是undefined呢?不是 let {x,y}={x:0,y:1}的時(shí)候,x可以輸出等于0,y=1嗎,雖然x,y是模式,賦值是賦給x,y變量,那這里為什么不是[0,0]呢?
2.還有阮老師說(shuō)默認(rèn)值只有當(dāng)?shù)扔趗ndefined的時(shí)候才起作用,那let {x:1,y:2}={};x會(huì)等于1,y會(huì)等于2,是不是因?yàn)橛疫厸](méi)有設(shè)定x,y屬性,所以在右邊找不到x,y所以?xún)蓚€(gè)都undefined,x才等于1,y等于2?是這么理解的嗎
你可以從結(jié)構(gòu)時(shí)的等號(hào)來(lái)看:
function move({x, y} = { x: 0, y: 0}) {...}
這里等號(hào)左邊的部分會(huì)被看作一個(gè)整體來(lái)賦默認(rèn)值,在題中第二個(gè) move 里就是他的唯一一個(gè)輸入值。
如果有輸入,則對(duì)這個(gè)輸入值進(jìn)行結(jié)構(gòu),如果沒(méi)有輸入,則使用默認(rèn)值。
可以注意到的是前面的 move 里有三個(gè)等號(hào),后面 move 只有一個(gè)等號(hào)
看 move({x: 3}),這里的 {x: 3} 對(duì)象的 y 為 undefined,
所以結(jié)果是 [3, undefined]
注意第二種 move 和 第一個(gè) move 的區(qū)別,
第一個(gè) move 中:
function move({x = 0, y = 0} = {}) {
return [x, y];
}
// 等價(jià)于
function move(a) {
if (a === undefined) {
a = {}
}
let x = a.x
if (x === undefined) {
x = 0
}
let y = a.y
if (y === undefined) {
y = 0
}
return [x, y]
}
而第二個(gè) move 相當(dāng)于:
function move(a = {x: 0, y: 0}) {
return [a.x, a.y];
}
// 等價(jià)于
function move(a) {
if (a === undefined) {
a = {x: 0, y: 0}
}
// 此處沒(méi)有為 a.x 和 a.y 設(shè)置默認(rèn)值的過(guò)程
return [a.x, a.y];
}
也就是當(dāng) a 為 undefined 時(shí),a 取默認(rèn)值 {x: 0, y: 0}.
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。