Dalam artikel ini, kami akan meneroka cara untuk mengelakkan ralat semasa cuba mengakses data yang mungkin tidak ditentukan atau batal dan kami akan melihat kaedah yang anda boleh gunakan untuk mengurus data dengan berkesan apabila perlu.
Dalam JavaScript, apabila cuba mengakses nilai atau fungsi dalam objek bersarang, jika hasilnya tidak ditentukan, kod anda mungkin menimbulkan ralat. Ralat ini boleh menghentikan pelaksanaan kod anda. Walau bagaimanapun, jika anda menggunakan operator rantaian pilihan, apabila cuba mengakses nilai atau fungsi dalam objek, ia akan kembali tidak ditentukan dan bukannya membuang ralat jika nilai atau fungsi itu tidak wujud. Ini menghalang kod anda daripada ranap.
Contoh:
const person = { name: 'John', address: { city: 'New York' } }; console.log(person.address?.city); // 'New York' console.log(person.address?.country); // undefined, no error
Jika nilai pembolehubah ialah null atau undefined, ia boleh memecahkan kod anda. Untuk menetapkan nilai lalai apabila pembolehubah adalah batal atau tidak ditentukan,** anda boleh menggunakan operator penggabungan batal (??).**
Contoh:
function getConfig(config) { return config ?? { timeout: 1000, retries: 3 }; } let userConfig = null; let finalConfig = getConfig(userConfig); // { timeout: 1000, retries: 3 } console.log(finalConfig);
Mengalih Keluar Pendua dengan Set:
Jika tatasusunan mengandungi nilai pendua, anda boleh mengalih keluar pendua tersebut dengan menggunakan Set. Begini cara menggunakan struktur ini:
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]
Mencegah Pendua dengan WeakSet:
Memandangkan WeakSet memegang rujukan kepada objek, objek hanya boleh ditambahkan pada WeakSet sekali. Berikut ialah contoh:
// 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
Dalam artikel ini, kami meneroka beberapa konsep penting yang boleh membantu mencegah ralat apabila mengakses nilai yang mungkin tidak ditentukan atau batal, serta kaedah untuk mengurus data dengan lebih berkesan apabila perlu.
Atas ialah kandungan terperinci Ciri-ciri Javascript Yang Anda Perlu Tahu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!