-
[教學] Quick Sort 演算法原理與實作
Quick Sort (快速排序) 演算法是一種「各個擊破」的 divide andconquer 方法,這篇文章將會教你 Quick Sort (快速排序) 演算法的原理,並教你如何用程式實作 Quick Sort,最後介紹其進階應用: Quick Select (快速選擇演算法)。
(閱讀全文...)
-
[筆記] 如何正確實作 JavaScript Array Random Shuffle 亂數排序演算法
Array random shuffle 是一個很常使用的演算法,但你真的知道如何正確地實作它嗎?這篇文章將會討論各種用 JavaScript 實作 array random shuffle (亂數排序) 的方法,以及他們的優缺點。
(閱讀全文...)
-
[教學] 深入淺出 JavaScript ES6 Class (類別)
你是否還對 ES6 JavaScript class 有點陌生呢?其實 JavaScript class 一點也不難!這篇文章將會解釋 JavaScript class 的觀念以及使用方法,包含 class 和 prototype 的關係,如何用
extends
達到繼承 (inheritance) 效果、constructor
及super
的寫法,以及如何使用 static method/class function (靜態方法),一起來看看吧!(閱讀全文...)
-
[教學] 如何將 React Native Android App 打包成 apk 並發布上架至 Google Play Store (2020年更新)
(閱讀全文...)
-
[教學] 3個JavaScript的call()和apply()的應用範例
這篇教學會用3個JavaScript中運用到
apply()
和call()
的例子,讓你快速了解apply()
和call()
的使用方法。(閱讀全文...)
-
[教學] JavaScript Closure (閉包)、函式與語彙環境
JavaScript 中的閉包 (Closure) 是函式以及其語彙環境 (Lexical Environment) 的組合,所有的函式都能夠記住被創造的當下的環境以及變數。這篇教學將會從 JavaScript 函式的特性開始講解,包含變數的存取規則、以及函式可以作為另一個函式的回傳值,最後帶到 closure 的特性,也就是函式能夠保留其環境。本篇還會講解 closure 的實際應用範例,包括 IIFE (Immediately Invoked Function Expression)、以及用 closure 的特性模擬物件導向中的 private member 以達到封裝的特性 (又稱為 module pattern)。
(閱讀全文...)
-
[教學] 瀏覽器事件:Event Bubbling, Event Capturing 及 Event Delegation
這篇教學介紹瀏覽器事件的運作原理,包含event bubbling、event capturing。第二部分介紹event delegation的寫法及應用時機。教學內容主要參考javacript.info 的 Introduction into Events。
(閱讀全文...)
-
[教學] 如何使用 JavaScript Promise 簡化非同步流程
JavaScript 中的 Promise 是專門用來執行非同步操作的資料結構,提供了 then、catch、all、race 等方法,使得複雜的非同步流程變得簡潔好管理。這篇文章將會介紹 promise 的 resolve 和 reject,如何使用 then 串接非同步流程以及 catch 處理錯誤,方便好用的 promise chain,以及如何利用 Promise.all 及 Promise.race 平行處理非同步流程。
(閱讀全文...)
-
[教學] 用 img srcset 與 HTML5 picture,讓圖片也能RWD
這篇文章將會教你如何設定 img 的 srcset 屬性,依據螢幕的 pixel density 或是寬度載入適當解析度的圖片,達成圖片的 RWD 效果;另外也會教你如何使用 HTML5 picture 標籤設定不同解析度下的多組圖片。
(閱讀全文...)
-
[教學] 三種 Interative Binary Tree Traversal 的方法 (In-Order, Pre-Order and Post-Order)
這篇文章將會教你如何實作三種 Interative Binary Tree Traversal 的方法 (In-Order, Pre-Order and Post-Order)。值得注意的是,迭代相對於遞迴的遍歷二元樹 (binary tree traversal) 方法較為不直觀,為了符合traverse的順序,有些節點需要晚點再拜訪,實作上會用到stack的資料結構。
(閱讀全文...)