「這是我參與2022首次更文挑戰(zhàn)的第32天腺怯,活動(dòng)詳情查看:2022首次更文挑戰(zhàn)」
寫(xiě)在前頭
大多數(shù)小伙伴看技術(shù)書(shū)籍都會(huì)用“啃”來(lái)描述讀書(shū)的直觀感受,當(dāng)然我也是一個(gè)前端小白摔桦,白的透明那種垦梆,但是我在讀技術(shù)書(shū)籍感覺(jué)到“啃”的時(shí)候间唉,我希望把我啃紅寶書(shū)第四版的過(guò)程的想法偏塞,總結(jié)帶給大家笙各,以供后來(lái)者能夠更快上手钉答。
注: 本文由于作者水平原因,如有錯(cuò)誤之處杈抢,懇請(qǐng)大家指正,另外隨著學(xué)習(xí)的深入数尿,體會(huì)的加深,我會(huì)不斷回來(lái)更新惶楼,修改這類文章右蹦。
思維導(dǎo)圖
簡(jiǎn)述
函數(shù)這一章其實(shí)在有一定的編程基礎(chǔ),比如學(xué)過(guò)一點(diǎn)c語(yǔ)言就很好讀下去歼捐。整體還是易讀板塊何陆。
函數(shù)本質(zhì)
函數(shù)本質(zhì)上是對(duì)象。每個(gè)函數(shù)都是Function 類型的實(shí)例窥岩。
函數(shù)的定義
函數(shù)的定義一共有四種甲献。
①函數(shù)聲明
function fn(x) {
}
注意: 函數(shù)定義最后沒(méi)有加分號(hào)。
②函數(shù)表達(dá)式
let fn = function (x) {
};
注意 函數(shù)末尾是有分號(hào)的颂翼,與任何變量初始化語(yǔ)句一樣晃洒。
③箭頭函數(shù)
let fn = (x) => {
return x;
};
箭頭函數(shù)實(shí)例化的函數(shù)對(duì)象與正式的函數(shù)表達(dá)式創(chuàng)建的函數(shù)對(duì)象行為是相同的慨灭。
任何可以使用函數(shù)表達(dá)式的地方,都可以使用箭頭函數(shù)
④ Function() 構(gòu)造函數(shù)
let fn = new Function('x', 'return x'); // 不推薦
不推薦理由:
上面代碼會(huì)被解釋兩次
影響性能
① 第一次是將它當(dāng)作常規(guī)ECMAScript 代碼球及。
② 第二次是解釋傳給構(gòu)造函數(shù)的字符串氧骤。
優(yōu)點(diǎn)
把函數(shù)想象為對(duì)象,把函數(shù)名想象為指針是很重要的吃引。而上面這種語(yǔ)法很好地詮釋了這些概念筹陵。
10.1箭頭函數(shù)
-
使用場(chǎng)景
任何可以使用函數(shù)表達(dá)式的地方,都可以使用箭頭函數(shù)
書(shū)寫(xiě)格式
①小括號(hào)()
一個(gè)參數(shù): 不用使用括號(hào)镊尺。
沒(méi)有參數(shù)朦佩,多個(gè)參數(shù)必須需要括號(hào)。
②大括號(hào){}
不使用大括號(hào):箭頭后面就只能有一行代碼庐氮,比如一個(gè)賦值操作语稠,或者一個(gè)表達(dá)式。
使用大括號(hào):可以在一個(gè)函數(shù)中包含多條語(yǔ)句弄砍,跟常規(guī)的函數(shù)一樣仙畦。
10.2函數(shù)名
- 函數(shù)名的本質(zhì)
函數(shù)名就是指向函數(shù)的指針。一個(gè)函數(shù)可以有多個(gè)函數(shù)名音婶。記住函數(shù)是一個(gè)對(duì)象慨畸!
- 函數(shù)名的使用
使用不帶括號(hào)的函數(shù)名會(huì)訪問(wèn)函數(shù)指針,而不會(huì)執(zhí)行函數(shù)衣式。
- name屬性
name屬性保存的是一個(gè)函數(shù)標(biāo)識(shí)符(一個(gè)字符串化的變量名)寸士。
當(dāng)函數(shù)沒(méi)有名稱時(shí): name也會(huì)顯示空字符串。