iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Modern Web

就是要搞懂 JavaScript 啦! 系列

本篇系列文為《You Don't Know JS》的讀書筆記,並搭配其他補充資料,寫下自己對這門語言的理解。
作為前端工程師,JavaScript 的各種實作細節是無法避開的課題,在一次次閱讀各種文件和文章,加上工作中累積的實作經驗,也算是對 JavaScript 建立起了相關的知識體系。於是就想藉著這次讀書筆記的機會,來和大家分享我所知道的 JavaScript。
所以說......就是要搞懂 JavaScript 啦!之前搞不懂的、一知半解的、模模糊糊的,這一次通通給他弄懂!

鐵人鍊成 | 共 73 篇文章 | 26 人訂閱 訂閱系列文 RSS系列文

Day41 Prototype OOP 混合:不需要繼承的繼承

前面已經提到,繼承最大的優點就是提高程式的複用性,減少重複程式碼。但從反向來看,其缺點也在於上層物件與下層物件之間高度關聯性,改動原型鍊上層物件的內容會影響到下...

2022-10-26 ‧ 由 Emi 分享

Day42 Prototype 遮蔽:一葉障目,不見泰山

在討論多型(Polymorphism)的章節中,有提到了多型是利用原型鍊的「遮蔽(Shadowing)」來達成,不過遮蔽在實際狀況下有些需要注意的細節。 在為一...

2022-10-27 ‧ 由 Emi 分享

Day43 Prototype 委託:自己辦不到的,就外包出去吧

前面已經說明過了原型在 JS 中是如何實踐的,與類導向不同,原型導向並不會進行類似父類與子類間的複製,原型實際是一種存在於物件上的內部連結,其作用是指向另一個物...

2022-10-28 ‧ 由 Emi 分享

Day44 Class 開篇:嶄新的物件導向語法...糖

前面已經提過,JS 本身模擬了一些與類導向很相似的行為,但實際是靠原型實踐繼承,或者說實踐了委託(Delegation)。 class 則是在 ES6 引入的一...

2022-10-29 ‧ 由 Emi 分享

Day45 Class 應用:語法搭配,碰撞新滋味

私有屬性/方法 JS 的 class 雖然實踐了更直觀的繼承語法以及靜態方法,但至目前為止(2022 年 10 月)尚未引入 private 關鍵字,也就是說,...

2022-10-30 ‧ 由 Emi 分享

Day46 Class 結語:考察與總結

對於 class 這個語法糖,以下再繼續進行一些考察。 this 的考察 class Circle1 { draw() { return this } }...

2022-10-31 ‧ 由 Emi 分享

Day47 Type 開篇:值的各種樣貌

結束了物件和原型的介紹,接著來看看 JS 裡的型別吧。 所謂的型別(Types),是指一組固有、內建的性質,對引擎和開發者來說,這些性質標誌了一個特定值的行為,...

2022-11-01 ‧ 由 Emi 分享

Day48 Type 原生功能:在值的背後默默履行職責

在前面的章節有介紹過,JS 內部擁有一些特殊物件,它們能夠創造出對應的值,這些物件被稱為內建物件(Build-in Objects)。而它們同時也都是 JS 的...

2022-11-02 ‧ 由 Emi 分享

Day49 Type 封箱與開箱:獲得屬於物件的超能力

封箱(Boxing) 在前面的文章有提到,像是 "abc" 這樣非物件的純值,要取得 length 等屬性,就需要物件包裹器(wrapper...

2022-11-03 ‧ 由 Emi 分享

Day50 Type 內建函式:自動還是手動好?

一如前面所說,在絕大多數情況下,除了 ES6 新增的 Symbol 以外,所有型別都可以使用字面值直接創造,而不需要調用它們的內建函式。 所以如果確定是必要的,...

2022-11-04 ‧ 由 Emi 分享