Aujourd'hui, j'ai trouvé un article sur github sur la façon d'utiliser correctement javascript pour développer nos programmes. J'en ai trouvé un original sans vergogne... c'est une arnaque. Partageons-le avec tout le monde.
Une approche plutôt raisonnable de Javascript.
Types //Type
Objets //Objet
Tableaux //Tableau
Chaînes //Chaîne
Fonctions //Fonction
Propriétés //Propriétés
Variables //Variables
Levage //Levage variable
Expressions conditionnelles et égalité //Expressions et équations conditionnelles.
Blocs //Code de blocage
Commentaires //Commentaires
Espace //espace
Virgules //virgule
Point-virgule //Point-virgule
Casting de type et coercition //Conversion de type
Conventions de dénomination //Conventions de dénomination
Accesseurs //Accès
Constructeurs //Constructeur
Événements //Heure
Modules //Modèle
jQuery //
Compatibilité ECMAScript 5 //Compatible ECMA 5
Tests //Tests
Performances //Performances
Ressources //Ressources
Dans la nature
Traduction
Le guide du guide de style JavaScript
Contributeurs
Licence
Types
Type primitif : lors de l'accès à un type primitif, le contenu du type primitif est en fait accessible directement.
chaîne
numéro
booléen
nul
indéfini
var foo = 1,
bar = foo;
barre = 9;
console.log(foo,bar); //=> 1,9
Type complexe : lorsque vous accédez à un type de données de type complexe, vous accédez en fait à la valeur de la variable par 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)
Utiliser des littéraux d'objet pour créer des objets (littéraux)
//bad var item = new Object(); //good var item = {};
N'utilisez pas de mots-clés réservés comme noms de propriétés d'objet. Cela ne fonctionnera pas sous IE8.
//bad var superman = { default: {clark: 'kent'}, private: true }; //good var superman = { defaults: {clark: 'kent'}, hidden: true };
tableau(tableau)
Utilisez également des méthodes littérales pour créer des tableaux
//bad var items = new Array(); //good var items = [];
Si vous ne connaissez pas la longueur du tableau, utilisez la méthode push intégrée d'Array pour effectuer l'opération d'insertion
var someStack = []; //bad someStack[someStack.length] = 'vein'; //good someStack.push('vein');
Lorsque vous souhaitez copier un tableau, utilisez array.slice
var len = items.length, //指的就是上面的内容... itemCopy = [], i; //bad for(i = 0; i < len ; ++i){ itemCopy[i] = items[i]; } //good itemCopy = items.slice(); //这里要注意了.这个我还真不知道...
Chaîne de cordes
Utilisez des guillemets simples pour entourer la chaîne...//Je n'ai pas trouvé d'explication appropriée sur les performances ici, j'aime personnellement l'utiliser de cette façon (mieux vaut porter moins que porter plus, n'est-ce pas ? ..vous. sais..)
//bad var name = "Bob Parr"; //good var name = 'Bob Parr'; //bad var fullName = "Bob " + this.lastName; //good var fullName = 'Bob ' + this.lastName;
Lorsque la chaîne comporte plus de 80 caractères, vous devez utiliser la concaténation de chaînes pour écrire sur plusieurs lignes. Notez que si elle est utilisée de manière excessive, la concaténation de chaînes affectera les performances
.
// bad var errorMessage = 'This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.'; // bad var errorMessage = 'This is a super long error that was thrown because \ of Batman. When you stop to think about how Batman had anything to do \ with this, you would get nowhere \ fast.'; // good var errorMessage = 'This is a super long error that was thrown because ' + 'of Batman. When you stop to think about how Batman had anything to do ' + 'with this, you would get nowhere fast.';
S'il est prévu de créer un tableau, comme indiqué ci-dessous, l'utilisation de Array.join donnera de meilleurs résultats..
var items, messages, length, i; messages = [{ stat: 'success', message: ' This one worked' },{ stat: 'success', message: ' This one worked' },{ stat: 'success', message: ' This one worked' } ]; length = messages.length; //bad function inbox(messages){ items = '<ul>'; for (i = 0; i < length; i++) { items += '<li>' + messages[i].message + '</li>'; } return items + '</ul>'; } //good function inbox(messages){ items = []; for( i = 0; i < length ; i++){ items[i] = messages[i].message; } return '<ul><li>' + items.join('</li><li>') + '</li></ul>'; }
Fonctions
//匿名函数表达式.. var anonymous = function(){ return true; }; // 命名函数表达式. var named = function named(){ return true; }; //即时引用函数 (function(){ console.log('Welcome to the Internet. Please follow me.'); })();
Ne définissez jamais de fonctions dans un code de bloc non fonctionnel (if, while). En conséquence, attribuez des fonctions à des noms de variables externes au milieu du bloc de code..
//bad if(currentUser){ function test(){ console.log('Nope.'); } } //good var test; if(currentUser){ test = function(){ console.log('Yup'); }; //be careful with the semi-colon. }
Propriétés
Utilisez la syntaxe par points pour accéder aux propriétés.
var luke = { jedi: true, age: 28 }; //bad var isJedi = luke['jedi']; //good var isJedi = luck.jedi;
Lorsque vous utilisez des variables pour accéder aux propriétés d'un objet, utilisez des crochets [] pour accéder à
var luke = { jedi: true, age: 28 }; function getProp(prop) { return luke[prop]; } var isJedi = getProp('jedi');