Aujourd'hui, j'ai trouvé une question sur GitHub sur la façon d'utiliser correctement JavaScript pour notre développement de programmes. J'ai trouvé sans vergogne un original ... c'est une arnaque. Partageons-le avec vous.
Une approche principalement raisonnable de JavaScript.
Types // Type
Objets // objets
Tableaux // tableaux
Cordes // cordes
Fonctions // fonctions
Propriétés // propriétés
Variables // variables
Hoies // Amélioration variable
Expressions conditionnelles et égalité // Expressions et égalités conditionnelles.
Blocs // Code de blocs
Commentaires // commentaires
Espace blanc //
Virgules // des virgules
Semi-colons // semi-virgules
Type Coulage et coercition // Conversion de type
Conventions de dénomination // Règles de dénomination
Accessors // Accès
Constructeurs // constructeurs
Événements // temps
Modules // modèles
jQuery //
Compatibilité ECMAScript 5 // Compatibilité ECMA 5
Test // Tester
Performance // Performance
Ressources // Ressources
À l'état sauvage
Traduction
Le guide du guide de style JavaScript
Contributeurs
Licence
Types (type)
Type primitif: Lors de l'accès à un type primitif, il accède en fait directement au contenu du type primitif.
chaîne
nombre
booléen
nul
indéfini
var foo = 1,
bar = foo;
bar = 9;
console.log (foo, bar); // => 1,9
Type de complexe: Lorsque vous accédez à un type de données de type complexe, vous accédez réellement à la valeur de la variable via une référence.
objet
tableau
fonction
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
objet (objet)
Utilisez des littéraux d'objets pour créer des objets (littéral)
// badvar item = new object (); // goodvar item = {};N'utilisez pas de mots clés réservés comme nom de propriété de l'objet. Cela ne fonctionnera pas sous IE8.
// badvar superman = {default: {Clark: 'kent'}, privé: true}; // goodvar superman = {par défaut: {clark: 'kent'}, caché: true};tableau (tableau)
Utilisez également la méthode littérale pour créer un tableau
// badvar items = new Array (); // goodvar items = [];
Si vous ne connaissez pas la longueur du tableau, utilisez la méthode intégrée du tableau Push for Insertion Operation
var somestack = []; // badsomestack [somestack.length] = 'vein'; // brofesomestack.push ('vein');Lorsque vous souhaitez copier un tableau, utilisez Array.slice
var len = items.length, // fait référence au contenu ci-dessus ... itemCopy = [], i; // badfor (i = 0; i <len; ++ i) {itemCopy [i] = items [i];} // gooditemCopy = itels.slice (); // J'ai besoin de faire attention ici. Je ne sais vraiment pas ça ...Cordes de cordes
Utilisez des citations simples pour enfermer les cordes ... // Je n'ai pas trouvé d'explication appropriée pour les performances ici, j'aime personnellement l'utiliser comme ça (il vaut mieux porter moins que l'usure ... vous savez ...)
// badvar name = "bob parr"; // goodvar name = 'bob parr'; // badvar fullname = "bob" + this.lastname; // goodvar fullname = 'bob' + this.lastname;
Lorsque les chaînes mesurent plus de 80 caractères, vous devez utiliser la concaténation des chaînes pour écrire sur plusieurs lignes. Notez que si la surutilisation, la concaténation des chaînes affectera les performances.
// badvar errorMessage = 'C'est une erreur super longue qui a été lancée à cause de Batman. Lorsque vous vous arrêtez pour réfléchir à la façon dont Batman avait quelque chose à voir avec cela, vous n'auriez nulle part rapidement. Lorsque vous vous arrêtez pour réfléchir à la façon dont Batman avait quoi que ce soit à faire / avec cela, vous n'obtiendrez nulle part / Lorsque vous vous arrêtez pour réfléchir à la façon dont Batman avait quoi que ce soit à faire «+» avec cela, vous n'auriez nulle part rapidement. »;
Si vous créez un tableau de manière planifiée, comme les suivantes. Utilisation de Array.join fonctionnera mieux.
var items, messages, longueur, I '<li>' + messages [i] .Message + '</li>';} return items + '</ul>';} // bacons de réception GoodFunction (messages) {items = []; for (i = 0; i <longueur; i ++) {items [i] = messages [i] .Message;} return '<ul> <li>' + items.join. '</li> </ul>';}Fonctions
// Fonction anonyme expression..var anonymous = function () {return true;}; // name function expression.var nommé = fonction nommée () {return true;}; // function de référence instantanée (function () {console.log ('bienvenue sur Internet. Veuillez me suivre.');}) ();Ne définissez jamais les fonctions dans le code de bloc non fonctionnel (si, while). De même, la fonction est attribuée au nom de variable externe au milieu du bloc de code.
// badif (currentUser) {fonction test () {console.log ('nope.');}} // goodvar test; if (currentUser) {test = function () {console.log ('yup'); }; // Soyez prudent avec le demi-colon.}Propriétés (propriétés)
Utilisez la syntaxe DOT pour accéder aux propriétés.
var luke = {Jedi: true, âge: 28}; // badvar isjedi = luke ['jedi']; // goodvar isjedi = Lucky.Jedi;Lorsque vous accédez aux propriétés d'objet à l'aide de variables, utilisez [] des crochets pour accéder
var luke = {Jedi: true, âge: 28}; fonction getprop (prop) {return luke [prop];} var isjedi = getProp ('jedi');