English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Chaque personne écrit JavaScript d'une manière différente. Mais il y a encore beaucoup de points communs, voici un ensemble de directives et de conseils simples pour l'écriture de JavaScript qui devraient vous éviter bien des détours.
Réduisez au minimum l'utilisation des variables globales. Cela inclut tous les types de données, les objets et les fonctions.
Les variables globales et les fonctions peuvent être couvertes par d'autres scripts. Donc, utilisez plutôt des variables locales.
Les variables locales doivent être utiliséeslet,constetvarles mots-clés de déclaration, sinon elles deviendront des variables globales.
Lors de la déclaration de variables et de constantes, utilisezletetconstles mots-clés, plutôt quevar.
// Recommandé: let myAge = 22; const myName = "oldtoolbag.com"; // Non recommandé: var myAge = 22; var myName = "oldtoolbag.com";
Il y a de nombreuses raisons suffisantes pour cela-Par exemple, cela évite les problèmes dus à la réaffectation accidentelle et évite les améliorations qui pourraient affecter la lisibilité.
Il est une bonne pratique de placer toutes les déclarations en haut de chaque script ou fonction.
Ci-dessous est fourni un code plus concis, avec un endroit pour rechercher tous les variables au début du code.
// Déclarez les déclarations au début let firstName, lastName, price, discount, fullPrice; // Utilisez firstName = "oldtoolbag.com"; lastName = "Choudhary"; price = 26.90; discount = 1.25; fullPrice = price * 100 / discount;
Pour maximiser la lisibilité, nous utilisons la syntaxe étendue, en mettant chaque ligne de JS en ligne.
// Recommandé: function myFunc() { console.log("Parrot Tutorial"); } // Non recommandé: function myFunc() { console.log("Parrot Tutorial"); }
Utilisez des espaces entre les opérateurs, les opérandes, les paramètres, etc. :
// Cela est plus lisible if(dayOfWeek === 7 && weather === "sunny") { /* Some code */ } // La lisibilité est médiocre if(dayOfWeek ===7&& weather === "sunny"){ /* Some code */ }
Toujours considérez les nombres, les chaînes de caractères ou les valeurs booléennes comme des valeurs primitives. Ne pas les traiter comme des objets.
Déclarer ces types en tant qu'objets réduira la vitesse d'exécution et produira des résultats inattendus.
var str1 === "New Delhi"; var str2 === new String("New Delhi"); document.write(str1 === str2); // Retourne false car str1 et str2 ont des types différentsVérifiez et voyez‹/›
Il est impossible de comparer les objets :
var str1 === new String("New Delhi"); var str2 === new String("New Delhi"); document.write(str1 === str2); // Retourne false car str1et str2Est un objet différent document.write(str1 === str2); // Retourne false car str1et str2Est un objet différentVérifiez et voyez‹/›
Utilisez {} à la place de new Object()
Utilisez "" à la place de new String()
Utilisez 0 à la place de new Number()
Utilisez false à la place de new Boolean()
Utilisez [] à la place de new Array()
Utilisez/()}/Remplacez new RegExp() par
Utilisez function (){} à la place de new Function()
let x1 === {}; let x2 === ""; let x3 === 0; let x4 === false; let x5 === []; let x6 = /()}/; let x7 = function(){};Vérifiez et voyez‹/›
JavaScript est un langage de type faible ou dynamique. Les variables JavaScript ne sont pas directement associées à un type de valeur spécifique et peuvent être assignées (et réassignées) tous les types de valeurs.
var x = 20; // x est maintenant un Number x = "oldtoolbag.com"; // x est maintenant un String x = true; // x est maintenant un BooleanVérifiez et voyez‹/›
Lors des opérations mathématiques, JavaScript peut convertir les nombres en chaînes :
num = 50 + 10;// Retourne 60, typeof num est un nombre num = 50 + "10"; // Retourne "5010", typeof num est une chaîne num = "50" + 10; // Retourne "5010", typeof num est une chaîne num = "50" - 10; // Retourne "40", typeof num est un nombreVérifiez et voyez‹/›
Notez que les nombres peuvent être convertis accidentellement enNaN(non numérique):
num = 50 * "Parrot"; // Retourne "NaN", typeof num est un nombreVérifiez et voyez‹/›
L'opérateur == de comparaison compare toujours avant la conversion (pour correspondre au type).
L'opérateur === de comparaison forcé compare la valeur et le type.
1 == ";1"; // true 1 == true; // true 1 === ";1"; // false 1 === true; // false
Pour insérer une valeur dans une chaîne, utilisezConstantes de modèle(` `)。
// Recommandé: let myName = 'oldtoolbag.com'; console.log(`Hi! I'm ${myName}!`); // Non recommandé: let myName = 'oldtoolbag.com'; console.log('Hi! I\'m' + myName + '!');
Lorsque vous utilisezfor,for...inoufor...ofBoucle, assurez-vous de définir correctement l'initialisation, en utilisantletMots-clés.
let fruits = ["Apple", "Mango", "Banana"]; // Recommandé: for(let i of fruits) { console.log(i); } // Non recommandé: for(i of fruits) { console.log(i); }
N'oubliez pas :
Il ne devrait pas y avoir d'espace entre le mot-clé de boucle et la parenthèse ouvranteEspace.
Il doit y avoir de l'espace entre les parenthèses et les accoladesUn espace.
Pour le nom de la fonction, utilisez lowerCamelCasing et utilisez des noms sémantiques clairs et compréhensibles à l'endroit approprié.
// Recommandé: function sayHello() { alert('Hello!'); } // Non recommandé: function sayhello() { alert('Hello!'); }
switchToujours terminer par default:. Même si vous ne le pensez pas nécessaire.
var day; switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; default: day = "Undefined Day"; }Vérifiez et voyez‹/›
Si certains états du programme génèrent des erreurs non capturées, elles arrêteront l'exécution et pourraient réduire l'utilité de l'exemple.
Par conséquent, vous devriez utilisertry...catchBloc pour capturer les erreurs.
try { console.log(results); } catch(e) { console.error(e); }