問題引出:
值型別和引用型別的區別
-
值型別
-
引用型別
typeof能判斷哪些型別?
-
識別所有值型別
-
識別函式
-
判斷是否是引用型別(不可再細分)
何時使用 === 何時使用 ==
手寫深複製
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') {
return obj; // 如果是原始型別,直接返回
}
// 建立一個新的物件或陣列
let clone = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]); // 遞迴複製每一個屬性
}
}
return clone;
}
- 變數計算
雙等號
除了 == null之外,其他一律用 ===
if語句和邏輯運算
- falsely變數和truely變數:兩步非運算之後等於false的就是falsely變數