Mengakses sifat bersarang dalam selalunya mengakibatkan TypeError jika sifat itu tidak wujud. Rantaian pilihan (?.) menawarkan cara yang bersih untuk mengakses sifat ini dengan selamat tanpa menulis semakan bertele-tele.
Contoh:
const user = { profile: { name: 'Alice' } }; console.log(user.profile?.name); // Alice console.log(user.profile?.age); // undefined (No error)
Perantaian pilihan menghalang ranap yang disebabkan oleh nilai yang tidak ditentukan atau batal dan memastikan kod anda lebih bersih dengan menghapuskan kenyataan jika berulang.
Import dinamik membolehkan anda memuatkan modul JavaScript hanya apabila ia diperlukan, mengurangkan saiz berkas awal dan meningkatkan prestasi aplikasi.
Contoh:
async function loadChart() { const { Chart } = await import('chart.js'); const myChart = new Chart(canvas, { type: 'bar', data: {...} }); }
Import dinamik membolehkan pemisahan kod, memastikan bahawa hanya JavaScript yang diperlukan dimuatkan untuk fungsi tertentu, menghasilkan masa pemuatan yang lebih cepat dan pengalaman pengguna yang lebih baik.
Menyahstruktur dengan nilai lalai membolehkan anda mengekstrak sifat daripada objek atau tatasusunan secara ringkas sambil memberikan nilai sandaran untuk mengelakkan tidak ditentukan.
Contoh:
const settings = { theme: 'dark' }; const { theme = 'light', language = 'en' } = settings; console.log(theme); // dark console.log(language); // en (default)
Pendekatan ini mengurangkan kod boilerplate dan menghalang nilai yang tidak ditakrifkan yang tidak dijangka, menjadikan logik anda lebih mantap dan boleh dibaca.
Mengendalikan acara seperti tatal atau ubah saiz boleh menjadi mahal jika dicetuskan terlalu kerap. Gunakan menyahlantun untuk menangguhkan pelaksanaan atau mendikit untuk mengehadkan kekerapan panggilan fungsi.
Contoh Melantun:
function debounce(func, delay) { let timeout; return (...args) => { clearTimeout(timeout); timeout = setTimeout(() => func(...args), delay); }; } window.addEventListener('resize', debounce(() => console.log('Resized!'), 300));
Contoh Pendikit:
function throttle(func, limit) { let lastCall = 0; return (...args) => { const now = Date.now(); if (now - lastCall >= limit) { lastCall = now; func(...args); } }; } window.addEventListener('scroll', throttle(() => console.log('Scrolled!'), 200));
Kedua-dua teknik mengoptimumkan prestasi penyemak imbas dengan mengurangkan bilangan kali pengendali acara dicetuskan, menjadikan aplikasi anda lebih lancar dan lebih responsif.
Elakkan pengiraan berlebihan dengan menyimpan cache hasil panggilan fungsi menggunakan memoisasi.
Contoh:
function memoize(fn) { const cache = new Map(); return (...args) => { const key = JSON.stringify(args); if (cache.has(key)) return cache.get(key); const result = fn(...args); cache.set(key, result); return result; }; } const factorial = memoize(n => (n <= 1 ? 1 : n * factorial(n - 1))); console.log(factorial(5)); // 120 console.log(factorial(5)); // Retrieved from cache
Memoisasi mengurangkan beban pengiraan dengan menggunakan semula hasil yang dikira sebelum ini, meningkatkan prestasi dengan ketara dalam fungsi rekursif atau pengiraan berat.
Dengan memasukkan amalan terbaik JavaScript unik ini ke dalam aliran kerja anda, anda boleh menulis kod yang lebih bersih, lebih pantas dan lebih cekap. Sama ada menggunakan rantaian pilihan untuk akses harta yang lebih selamat atau memanfaatkan import dinamik untuk prestasi, teknik ini akan membezakan anda sebagai pembangun moden.
Manakah antara amalan ini yang akan anda cuba dahulu? Kongsi pendapat anda dalam ulasan!
Atas ialah kandungan terperinci Amalan Terbaik dalam JavaScript: Menulis Kod Bersih, Cekap dan Boleh Diselenggara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!