Rumah > Artikel > hujung hadapan web > Anda Mungkin Tidak Tahu: Ciri Penting dan Kurang Diketahui dalam JavaScript
JavaScript ialah salah satu tunjang dunia pembangunan web. Walaupun anda telah menggunakan bahasa ini selama bertahun-tahun, anda mungkin tidak menemui beberapa ciri lanjutan. Dalam artikel ini, kami akan membincangkan 5 ciri JavaScript yang paling penting dan kurang diketahui.
Mencapai nilai dalam struktur bersarang objek dalam JavaScript kadangkala boleh membawa risiko ralat. Jika nilai dalam tidak ditentukan atau batal, ini boleh menyebabkan ralat. Pengendali rantaian pilihan (?.) menghapuskan masalah ini.
Contoh:
const user = { name: 'John', address: { city: 'New York' } }; console.log(user.address?.city); // 'New York' console.log(user.address?.zipcode); // undefined, hata vermez
Operator nullish coalescing (??) dalam JavaScript digunakan untuk mengembalikan nilai alternatif apabila nilai adalah null atau undefined. Operator ini amat berguna untuk menyediakan nilai lalai jika pembolehubah tidak mempunyai nilai atau tidak ditakrifkan.
Contoh:
let x = 0; let y = x ?? 42; // 0 döner, çünkü 0 null veya undefined değildir console.log(y);
function getConfig(config) { return config ?? { timeout: 1000, retries: 3 }; } let userConfig = null; let finalConfig = getConfig(userConfig); // { timeout: 1000, retries: 3 } console.log(finalConfig);
Menyahlantun ialah teknik yang memastikan fungsi berjalan sekali sahaja dalam tempoh masa tertentu. Ini amat berguna untuk peristiwa yang sering dicetuskan dalam interaksi pengguna (cth. menaip, menatal). Nyahlantun , biasanya digunakan untuk memulakan tindakan (cth. panggilan API) selepas pengguna menyelesaikan sesuatu.
Apabila pengguna menaip dalam medan input carian, bukannya membuat panggilan API dengan setiap ketukan kekunci, nyahlantun memastikan bahawa panggilan API dibuat hanya apabila pengguna berhenti menaip:
Menghalang lebihan pelayan: Sebilangan besar permintaan tidak akan dihantar, yang menjadikan pelayan berfungsi dengan lebih cekap.
Mengurangkan kelewatan: Pengguna mendapat respons yang lebih pantas.
Meningkatkan pengalaman pengguna: Pengguna menjangkakan cadangan akan datang hanya apabila dia berhenti menaip.
Contoh:
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Debounce Örneği</title> <style> body { font-family: Arial, sans-serif; margin: 20px; } #searchInput { padding: 10px; width: 300px; font-size: 16px; border: 1px solid #ccc; border-radius: 4px; } #result { margin-top: 20px; } </style> </head> <body> <h1>Arama Örneği</h1> <input type="text" id="searchInput"/> <div id="result"></div> <script> // Debounce fonksiyonu function debounce(func, delay) { let timeoutId; return function(...args) { clearTimeout(timeoutId); // Önceki zamanlayıcıyı temizle timeoutId = setTimeout(() => func.apply(this, args), delay); // Yeni bir zamanlayıcı ayarla }; } const search = debounce((query) => { console.log(`Searching for ${query}`); // Burada bir API çağrısı yapabilirsiniz document.getElementById('result').innerText = `Sonuçlar için arama yapılıyor: ${query}`; }, 300); // Input olayını dinleme document.getElementById('searchInput').addEventListener('input', (event) => { search(event.target.value); }); </script> </body> </html>
Proksi membenarkan menangkap dan mengubah suai operasi terhadap objek. Ciri ini berguna untuk menentukan gelagat tersuai sebelum melakukan operasi pada objek.
Contoh:
const target = { message: 'Hello' }; const handler = { get: function(obj, prop) { if (prop in obj) { return obj[prop]; } else { return `Property ${prop} does not exist`; } } }; const proxy = new Proxy(target, handler); console.log(proxy.message); // Hello console.log(proxy.nonExistent); // Property nonExistent does not exist
Adalah mungkin untuk mengelakkan nilai pendua dengan menggunakan kedua-dua struktur. Contoh yang menunjukkan cara melakukannya menggunakan kedua-dua struktur:
Mencegah Nilai Pendua dengan 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]
Mencegah Nilai Pendua dengan WeakSet
const uniqueObjects = new WeakSet(); const objA = { name: 'Alice' }; const objB = { name: 'Bob' }; const objC = objB; // Aynı referans // Değer ekleme uniqueObjects.add(objA); uniqueObjects.add(objB); uniqueObjects.add(objC); // objB'nin referansı olduğu için bu eklenmeyecek console.log(uniqueObjects); // WeakSet { ... } (objA ve objB ile gösterir)
Ciri ini ialah alatan yang membolehkan anda menggunakan sepenuhnya kuasa dan fleksibiliti JavaScript. Anda boleh menggunakan ciri ini dalam projek anda untuk memastikan kod anda lebih berprestasi, bersih dan mampan.
Atas ialah kandungan terperinci Anda Mungkin Tidak Tahu: Ciri Penting dan Kurang Diketahui dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!