Maison > interface Web > js tutoriel > Meilleures pratiques en JavaScript : rédiger un code propre, efficace et maintenable

Meilleures pratiques en JavaScript : rédiger un code propre, efficace et maintenable

DDD
Libérer: 2024-11-27 09:22:10
original
714 Les gens l'ont consulté

Best Practices in JavaScript: Writing Clean, Efficient, and Maintainable Code

1. Protégez votre code avec le chaînage facultatif (?.)

L'accès à des propriétés profondément imbriquées entraîne souvent TypeError si la propriété n'existe pas. Le chaînage facultatif (?.) offre un moyen propre d'accéder en toute sécurité à ces propriétés sans écrire de vérifications verbeuses.

Exemple :

const user = { profile: { name: 'Alice' } };  

console.log(user.profile?.name); // Alice  
console.log(user.profile?.age); // undefined (No error)  
Copier après la connexion

Pourquoi l'utiliser ?

Le chaînage facultatif évite les plantages causés par des valeurs non définies ou nulles et maintient votre code plus propre en éliminant les instructions if répétitives.


2. Optimisez les performances avec les importations dynamiques

Les importations dynamiques vous permettent de charger des modules JavaScript uniquement lorsqu'ils sont nécessaires, réduisant ainsi la taille initiale du bundle et améliorant les performances de l'application.

Exemple :

async function loadChart() {  
  const { Chart } = await import('chart.js');  
  const myChart = new Chart(canvas, { type: 'bar', data: {...} });  
}  
Copier après la connexion

Pourquoi l'utiliser ?

Les importations dynamiques permettent de le fractionnement du code, garantissant que seul le JavaScript nécessaire est chargé pour une fonctionnalité spécifique, ce qui entraîne des temps de chargement plus rapides et une meilleure expérience utilisateur.


3. Simplifiez le code avec la déstructuration et les valeurs par défaut

La déstructuration avec des valeurs par défaut vous permet d'extraire les propriétés d'objets ou de tableaux de manière concise tout en fournissant des valeurs de repli pour éviter les valeurs indéfinies.

Exemple :

const settings = { theme: 'dark' };  

const { theme = 'light', language = 'en' } = settings;  

console.log(theme); // dark  
console.log(language); // en (default)  
Copier après la connexion

Pourquoi l'utiliser ?

Cette approche réduit le code passe-partout et évite les valeurs non définies inattendues, rendant votre logique plus robuste et plus lisible.


4. Améliorez les performances grâce à l'anti-rebond et à la limitation

La gestion d'événements tels que le défilement ou le redimensionnement peut être coûteuse s'il est déclenché trop fréquemment. Utilisez l'anti-rebond pour retarder l'exécution ou la limitation pour limiter la fréquence des appels de fonction.

Exemple anti-rebond :

function debounce(func, delay) {  
  let timeout;  
  return (...args) => {  
    clearTimeout(timeout);  
    timeout = setTimeout(() => func(...args), delay);  
  };  
}  

window.addEventListener('resize', debounce(() => console.log('Resized!'), 300));  
Copier après la connexion

Exemple de limitation :

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));  
Copier après la connexion

Pourquoi l'utiliser ?

Les deux techniques optimisent les performances du navigateur en réduisant le nombre de fois où les gestionnaires d'événements sont déclenchés, ce qui rend vos applications plus fluides et plus réactives.


5. Cacher les calculs coûteux avec la mémorisation

Évitez les calculs redondants en mettant en cache les résultats des appels de fonction à l'aide de la mémoisation.

Exemple :

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  
Copier après la connexion

Pourquoi l'utiliser ?

La mémoïsation réduit la charge de calcul en réutilisant les résultats calculés précédemment, améliorant considérablement les performances dans les fonctions récursives ou les calculs lourds.


Conclusion

En incorporant ces bonnes pratiques JavaScript uniques dans votre flux de travail, vous pouvez écrire du code plus propre, plus rapide et plus efficace. Qu'il s'agisse d'utiliser le chaînage facultatif pour un accès plus sûr aux propriétés ou de tirer parti des importations dynamiques pour améliorer les performances, ces techniques vous distingueront en tant que développeur moderne.

Laquelle de ces pratiques allez-vous essayer en premier ? Partagez vos réflexions dans les commentaires !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal