不久前讀到「忍者 JavaScript 開發技巧探秘(第二版)」這本由 jQuery 發明者 John Resig 所編寫的書,才發現自己從事 JavaScript 開發多年來,一直對這個程式語言的原理一知半解。雖然會用各種前端框架,卻不知道背後發生的原因。這本書用易懂的方式解釋了 JS 的基礎概念,讓我豁然開朗,因此想藉由比賽30天的時間,以我理解的角度重新解釋習得的概念。
系列文章的主題會以 JavaScript 函式及物件的探討為主,然後是要怎麼利用這些特性在瀏覽器中開發優質的應用程式。
在學會了變數範圍和 lexical environment 後,我們就可以用它來檢驗一下閉包發生的原因,畢竟閉包是 JavaScript 作用範圍規則運作時的一...
Generator 是 ES6 新加入的標準。 Generator 是一種特殊類型的函式,一般的函式只會回傳一個值,但是 generator 卻會對不同的請求分...
Promise 也是 ES6 新加入的標準,它的用處在預留一個我們目前沒有,但之後會有的值,它能保證我們未來會得到一個非同步計算的結果。如果 promise 實...
JavaScript ES6 新增了 async 函式,是一種結合了 generator 和 promise 的功能。 我們在 function 關鍵字前面加上...
物件是 JavaScript 另一個大主題,光是 “almost everything in JavaScript is an object” 這句話就知道物件...
函式原型與物件原型 除了使用 object literal 建立物件,前面我們也用過 constructor function 先定義物件的預設狀態,再用ne...
程式開發是個集眾人智慧的工作,開發者希望能站在巨人的肩膀,繼承(inheritance)既有的程式所有功能,在上面開發新功能,不用每次都重新造輪子。在其他程式語...
前一篇文章說到 JavaScript 沒有類別(class)的設計,是用原型實現類別的效果。不過在 ES6 裡卻新增了 class 關鍵字,讓我們可以用新的語法...
JavaScript 的自由度讓我們能隨意的新增及更改物件屬性值,但是有些時候我們想要有些限制,以保持我們資料的正確性。比如說某個屬性的資料類別是數字,我們希望...
proxy也是 ES6 新加入的標準,中文直譯「代理」。前面我們用到getter和setter,但它們只能控制單一屬性,而 proxy比起它們更加強大,能全面的...