Boison《第二人生》站長

Boison《第二人生》站長

透過社群開啟第二人生

ES6: 用 Promise 處理非同步問題
寫程式

ES6: 用 Promise 處理非同步問題

透過 Promise 處理非同步操作,可確保事件完成後再執行。我們會在 Promise 建構函式中使用 resolve 或 reject 來控制執行流程。當執行非同步事件時,Promise 會維持 pending 狀態,直到事件完成並呼叫 resolve 成為 fulfilled 或因錯誤而呼叫 reject 成為 rejected。使用 then、catch、finally 來處理 Promise 的結果,以確保非同步操作的正確性和時序。
5 min read
ES7: 用 Async/Await 處理非同步問題
寫程式

ES7: 用 Async/Await 處理非同步問題

在這篇文章中,我們探討了如何使用 ES7 的 async/await 來處理非同步問題。透過 async 聲明異步函式和 await 暫停異步函式的執行,可以使非同步操作以近似同步的方式進行,這不僅提升了程式的可讀性,也使錯誤處理變得更加直觀。此外,示例中展示了如何利用 try...catch 處理異步操作中可能出現的錯誤,保證異步邏輯的完整性和穩健性。通过学习 async/await,開發者可以更有效地管理和維護異步程序。
2 min read
處理非同步問題的三種方式
寫程式

處理非同步問題的三種方式

在這篇文章中,我探討了三種處理非同步問題的方式:Callback、Promise 以及 Async/Await。透過詳細的範例和說明,我解釋了這些技術如何幫助開發者有效管理非同步操作,確保應用程序的流暢執行。每種技術都有其適用場景,從 Callback 的基礎應用到 Promise 的鏈式操作,再到 Async/Await 的直觀語法,這些方法都是現代 JavaScript 開發中不可或缺的技能。
1 min read
JavaScript: Node.js 是其執行環境
寫程式

JavaScript: Node.js 是其執行環境

V8 是 Google 開發的開源 JavaScript 引擎,用於編譯 JavaScript 使其能夠在 Chrome 和 Node.js 中執行。作為一個直譯語言,JavaScript 在執行時需要一個執行環境,而 Node.js 提供了這樣的環境,使得 JavaScript 能夠脫離瀏覽器運行。為了兼顧直譯語言的靈活與編譯語言的效能,V8 採用了即時編譯(JIT)的技術,這種技術在執行 JavaScript 時,能夠即時將程式碼編譯成機器碼,大大提高了執行效率。
1 min read
JavaScript 中 Math 函式 Method 整理
寫程式

JavaScript 中 Math 函式 Method 整理

我這篇文章整理了 JavaScript 中 Math 函式庫的常用方法,包括取絕對值的 Math.abs(x)、無條件進位的 Math.ceil(x)、無條件捨去的 Math.floor(x)、四捨五入的 Math.round(x),以及去除小數點的 Math.trunc(x)。還有生成隨機數的 Math.random()、找最大最小值的 Math.max(...array) 和 Math.min(...array),判斷數值型態的 Math.sign(x),以及計算次方的 Math.pow(base, exponent)。這些方法幫助我在處理數學計算時更加便捷。
2 min read
分支限界法 (Branch-and-Bound)
寫程式

分支限界法 (Branch-and-Bound)

我的理解是,分支限界法 (Branch and Bound)有點貪婪演算法(Greedy Algorithm)和回溯法(Backtracking)的精神。(可見 回溯法(Backtracking)和 貪婪演算法(Greedy Algorithm)文章)。在每次做出選擇當下選擇最優解,並且將找到的最短路徑作為新的約束條件,若在遍歷過程中不符合此約束條件,就退回一步甚至是上幾步的計算重新選擇。
1 min read
ES6: Map 物件,特性是有順序性
寫程式

ES6: Map 物件,特性是有順序性

在這篇文章中,我深入探討了 ES6 的 Map 物件和它獨特的方法。我示範了如何使用 Map 來存儲鍵值對,並介紹了 Map 的多個操作,包括新增、取值、檢查、迭代和清空等。我還比較了 Map 與傳統 Object 的效能和特性,指出 Map 在處理大量動態鍵值對時的優勢。此外,Map 的順序性和對各種數據類型鍵的支援,使其成為一個非常靈活和強大的數據結構選項。
2 min read
CI/CD 原理: 持續集成&持續交付/部署
寫程式

CI/CD 原理: 持續集成&持續交付/部署

在這篇文章中,我深入探討了 CI/CD 的三個階段:持續整合(CI)、持續交付(CD)和持續部署(CD),並解釋它們在軟件開發過程中的重要性。我強調了持續整合如何幫助團隊減少整合衝突,持續交付如何保證軟件隨時可部署,以及持續部署如何實現自動化生產部署。此外,我還介紹了在 GitLab 和 Jenkins 中實施 CI/CD 的具體例子。
7 min read
CI/CD: GitHub Actions 自動部署到 GitHub Page
寫程式

CI/CD: GitHub Actions 自動部署到 GitHub Page

在這篇文章中,我探討了如何在 GitHub 上使用 GitHub Actions 來實施 CI/CD,重點介紹了如何撰寫用於持續部署的工作流程腳本。透過簡單的實例,我說明了從建立專案、手動部署、到設定自動化部署的全過程,並提供了 GitHub Actions 腳本的具體配置方法,以幫助讀者能夠更好地利用這一功能來自動化他們的部署過程。
3 min read