跳至內容
Astera Technology

JavaScript 值與執行

從固定程式的輸出追查值、參照和執行次序,再做有明確答案的修正練習。

Astera Technology

const 鎖住名稱,不代表物件不能改

先改物件內容,再試把 const 名稱指向另一物件。

實用教學
Astera Technology

每次建立函式,都可以有自己的狀態

輪流呼叫兩個計數器,分清每次改的是哪個值。

實用教學
Astera Technology

console.log 有顯示,不等於函式有傳回值

把記錄動作和傳回值拆開看,找出 undefined 的來源。

實用教學
Astera Technology

字串和數字一樣寫法,也未必是同一個值

比對數字、文字和空值時,別只看畫面上的字。

實用教學
Astera Technology

短路運算不只算真假,也會影響有沒有執行

不只估真假,還要核對哪些函式根本沒跑。

實用教學
Astera Technology

複製了物件,內層為何仍一起變?

外層已複製,仍要找出共用的內層物件。

實用教學
Astera Technology

函式預設參數只補 undefined,並非所有空值

沒傳值、undefined、null 和空字串,要分開試。

實用教學
Astera Technology

清單篩選再轉格式,原資料可以保留

先篩可見項目,再改顯示格式,核對原資料有沒有被改。

實用教學
Astera Technology

分組名稱可任意寫,別撞上物件內建鍵

用 Map 計分組,toString 也只是普通名稱。

實用教學
Astera Technology

排序後保留原陣列,分數相同也有固定次序

先複製再按數字排序,分數相同時保留輸入先後。

實用教學
Astera Technology

事件內再次觸發同一事件,once 仍只跑一次

once 回呼內再觸發同類事件,核對會執行幾次。

實用教學
Astera Technology

同步程式先跑完,微任務才接住處理

Promise 已完成,回呼仍要等同步程式跑完。

實用教學
Astera Technology

finally 可做收尾,但別不小心蓋過錯誤

收尾照做,原本的非同步錯誤也要交到 catch。

實用教學
Astera Technology

多個 Promise 成敗不同,結果仍按原次序整理

逐項看成敗記錄,結果位置仍跟輸入次序。

實用教學
Astera Technology

Generator 未必立即跑,取值才繼續

只取兩個值,核對 Generator 實際做了多少工作。

實用教學
Astera Technology

同一 regex 再測一次,為何結果不同?

同一個全域 regex 重複測試,要把 lastIndex 一起看。

實用教學
Astera Technology

網址參數有重複值,亦要處理 & 和空格

參數可重複,& 和空格也要原樣往返。

實用教學
Astera Technology

陣列空位和 undefined,迭代時未必一樣

陣列長度以外,還要核對索引是否真的有項目。

實用教學
Astera Technology

CustomEvent 的 detail,原來仍是同一個物件

CustomEvent 發出後,detail 是否已成獨立副本?

實用教學