Skip to main content

Command Palette

Search for a command to run...

#javascript

Articles tagged with #javascript

  1. 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 read37
    JavaScript - Scope 作用域 & Closure 閉包
  2. 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 read33
    JavaScript - this 是誰、指向哪裡,以及 call、apply、bind
  3. JavaScript - Hoisting 提升

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

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

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

    Sep 23, 20236 min read62
    JavaScript 的相等比較:==、=== 和 Object.is()