在本文中,我們將探討如何在嘗試存取可能未定義或null 的資料時防止錯誤,並且我們將介紹您可以使用的方法必要時用於有效管理資料。
在 JavaScript 中,當嘗試存取巢狀物件中的值或函數時,如果結果為 undefined,您的程式碼可能會拋出錯誤。此錯誤可能會停止程式碼的執行。但是,如果使用可選連結運算子,當嘗試存取物件內的值或函數時,如果該值或函數不存在,它將傳回 undefined 而不是拋出錯誤。這可以防止您的程式碼崩潰。
範例:
const person = { name: 'John', address: { city: 'New York' } }; console.log(person.address?.city); // 'New York' console.log(person.address?.country); // undefined, no error
如果變數的值為null 或未定義,它可能會破壞您的程式碼。若要在變數為 null 或未定義時指派預設值,** 您可以使用 nullish 合併運算子 (??)。 **
範例:
function getConfig(config) { return config ?? { timeout: 1000, retries: 3 }; } let userConfig = null; let finalConfig = getConfig(userConfig); // { timeout: 1000, retries: 3 } console.log(finalConfig);
使用 Set 刪除重複項:
如果陣列包含重複值,您可以使用 Set 刪除這些重複項。以下是如何使用此結構:
const numbers = [1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9]; const uniqueNumbers = [...new Set(numbers)]; console.log(uniqueNumbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
使用 WealSet 來防止重複:
由於WeakSet 保存對物件 的引用,因此一個物件只能加入WeakSet 一次。這是一個例子:
// Creating a WeakSet const weakset = new WeakSet(); // Defining objects const obj1 = { name: 'Alice' }; const obj2 = { name: 'Bob' }; // Adding objects to the WeakSet weakset.add(obj1); weakset.add(obj2); console.log(weakset.has(obj1)); // true console.log(weakset.has(obj2)); // true // Attempting to add the same object again weakset.add(obj1); // obj1 is already present, won't be added again console.log(weakset.has(obj1)); // true console.log(weakset.has(obj2)); // true // Removing an object from the WeakSet weakset.delete(obj1); console.log(weakset.has(obj1)); // false // Adding the object again weakset.add(obj1); console.log(weakset.has(obj1)); // true
在本文中,我們探討了一些重要的概念,這些概念可以幫助防止在存取可能未定義或為 null 的值時發生錯誤,以及在必要時更有效地管理資料的方法。
以上是你需要了解的 JavaScript 特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!