本篇系列文為《You Don't Know JS》的讀書筆記,並搭配其他補充資料,寫下自己對這門語言的理解。
作為前端工程師,JavaScript 的各種實作細節是無法避開的課題,在一次次閱讀各種文件和文章,加上工作中累積的實作經驗,也算是對 JavaScript 建立起了相關的知識體系。於是就想藉著這次讀書筆記的機會,來和大家分享我所知道的 JavaScript。
所以說......就是要搞懂 JavaScript 啦!之前搞不懂的、一知半解的、模模糊糊的,這一次通通給他弄懂!
說了這麼多,到底為什麼要使用作用域呢? 說到底,列出一系列對變數存取的規則,目的就是要製造出一個個作用域泡泡,只有在合乎規定的情況下,才能夠使用泡泡內部的變數,...
變數的提升 我們已經知道,變數依賴著作用域存活,也就是遵循著一系列規則被存取。 而在變數的宣告和賦值上,有一個微妙的細節。 先前已經提過,進行變數查詢時如果找不...
函式宣告 延續上一篇的話題,我們來看看這段程式碼: console.log(a); var a; function a(){ console.log(&qu...
在結束提升的討論後,我們來到作用域中的另一個謎題:閉包(Closure)。 閉包在 JS 的程式碼中扮演隱微卻關鍵的角色,函式替作用域創造了封閉性,閉包卻把函式...
上一篇我們已經知道,只要有函式就有閉包,而其中一種將閉包運用得淋漓盡致的方法,就是所謂的模組(Modules)。 神奇的工具箱 模組就像一個設計好的工具箱,比方...
這章開始,我們要探索另一個 JS 裡的重大謎團──總是讓人搞不清楚是這個還是那個的 this 。 為什麼要有 this? 在介紹 this 之前,首先來看看 t...
呼叫點 & 呼叫堆疊 前面說到,this 綁定的對象與作用域無關,而是決定於與函式如何調用,也就是呼叫時建立的執行環境(Execution contex...
默認綁定(Default Binding) 當函式未使用其他綁定方式,獨立被調用時,它所在的環境即是默認的全域環境,此時函式內部執行環境的 this 便預設指向...
隱含綁定(Implicit Binding) this 綁定的另一種方法,是讓函式調用時擁有一個環境物件(context object),或稱擁有者(owner...
檢視明確綁定之前,讓我們先回到之前出現過的範例: const person1 = { name: 'Amy' } const person2 = {...