Skip to main content

Command Palette

Search for a command to run...

Latest articles

  1. TypeScript - 型別斷言(Type Assertion)

    型別斷言是 TypScript 的一種機制,允許我們手動指定一個明確的型別,提供 TypeScript 編譯器無法自行推斷的額外型別資訊。 我們可以透過這兩種寫法來指定型別斷言: 語法 尖括號 <>(angle-bracket)語法 語法:<type>value - 在需要斷言的變數前加上 <Type> 即可 const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas") as 語法 語法:value as...

    Oct 15, 20232 min read
  2. JavaScript - Scope 作用域 & Closure 閉包

    Scope 作用域 留言 什麼是作用域 「作用域就是一個變數的生存範圍,一旦出了這個範圍,就無法存取到這個變數」。 當我們把變數 a 宣告在 function 中,function 之外的地方都無法取用這個變數: // 把變數宣告在 function 中 function test1() { var a = "hello" } console.log(a) // Uncaught ReferenceError: a is not defined 但當我們把變數 b 宣告在全域,fu...

    Oct 3, 20236 min read
    JavaScript - Scope 作用域 & Closure 閉包
  3. JavaScript - this 是誰、指向哪裡,以及 call、apply、bind

    this 是什麼 this 是 JavaScript 的一個關鍵字 this 是 function 執行時,自動生成的一個內部物件 隨著 function 執行場合的不同,this 所指向的值,也會有所不同 this 與 function 在何處被宣告完全無關,而是取決於 function 被呼叫的方式 在大多數的情況下, this 代表的就是呼叫 function 的物件 (owner Object of the function) 當 function 是某個 object 的 ...

    Oct 3, 20233 min read
    JavaScript - this 是誰、指向哪裡,以及 call、apply、bind
  4. JavaScript - Hoisting 提升

    Hoisting 是怎麼發生的? 變數和函數的宣告會在編譯階段就被放入記憶體,但實際位置和程式碼中完全一樣。 從這段 MDN 對於 hoisting 的說明大概可以了解到,Javascript 在執行程式碼之前會先進行編譯,而在編譯的過程中會將變數宣告以及函式宣告提升 (hoist) 到該 scope 的頂端,但需注意這邊並非實際改動程式碼的位置。 JS 在運作時是分成「編譯」和「執行」兩個步驟。而 hoisting 是發生在編譯的階段。 JS 在編譯的階段會將變數及函式的宣告處理好(h...

    Oct 3, 20233 min read
    JavaScript - Hoisting 提升
  5. JavaScript 的相等比較:==、=== 和 Object.is()

    在 JavaScript 中想判斷變數或對象是否相等有以下三種方法: 一般相等(==) 嚴格相等(===) Object.is() 方法 前兩個比較運算子 == 和 === 都可以拿來判斷比較對象是否相等,不過兩者的差別究竟在哪裡?又為什麼要這樣設計?是我一開始學習 JavaScript 感到有點混淆的地方,也是滿常見的面試考題。 == 與 === 的差別 「大部分情況下不建議使用 ==,應該使用 ===」 初學 JavaScript 的我們通常會直接看到這樣的結論,但這是為什麼呢...

    Sep 23, 20236 min read
    JavaScript 的相等比較:==、=== 和 Object.is()
  6. JavaScript - Null, undefined, not defined 差異

    Null, undefined, not defined 差異 null 與 undefined 差異 null 代表「空值」(有被賦予為空的值),轉為數值時為 0;undefined 代表「未定義」的原始值(尚未被賦予值),轉為數值時為 NaN undefined 與 not defined 差異 undefined 是變數被宣告了但沒有賦值,屬於原始型別之一;not defined 是變數沒有被宣告,不屬於原始型別,是執行程式時的錯誤訊息 (runtime error),需要被修正。 con...

    Sep 19, 20232 min read
    JavaScript - Null, undefined, not defined 差異