首頁 > web前端 > js教程 > 主體

你需要了解的 JavaScript 特性

Patricia Arquette
發布: 2024-10-03 06:30:30
原創
533 人瀏覽過

Javascript Features You Need to Know

在本文中,我們將探討如何在嘗試存取可能未定義或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 和 WeakSet 管理重複項

使用 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]

登入後複製

使用 Wea​​lSet 來防止重複:

由於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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板