Home

Awesome

Airbnb JavaScript Guide de Style() {

Une approche plus ou moins raisonnable à Javascript

<a name='TOC'>Table des Matières</a>

  1. Types
  2. Objets
  3. Tableaux
  4. Chaines de caractères
  5. Fonctions
  6. Propriétés
  7. Variables
  8. Hissage
  9. Expressions conditionnelles & Égalité
  10. Blocs
  11. Commentaires
  12. Espaces
  13. Virgules
  14. Point-virgules
  15. Conversion des types & Contraintes
  16. Conventions de nommage
  17. Accesseurs
  18. Constructeurs
  19. Évènements
  20. Modules
  21. jQuery
  22. Compatibilité ES5
  23. Test
  24. Performances
  25. Sources
  26. Dans la Nature
  27. Traductions
  28. Le Guide au Guide de Style Javascript
  29. Contributeurs
  30. License

<a name='types'>Types</a>

⬆ Revenir en haut

<a name='objects'>Objets</a>

⬆ Revenir en haut

<a name='arrays'>Tableaux</a>

⬆ Revenir en haut

<a name='strings'>Chaînes de caractères</a>

Pourquoi? Il est difficile de travailler avec des chaînes de caractères brisées et cela rend le code moins recherchable.

```javascript
// pas bien
const 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.';

// pas bien
const 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.';

// bien
const 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.';
```

Pourquoi? L'utilisation d'un template de chaînes de caractères vous permet d'être plus lisible, d'avoir une syntaxe concise avec des nouvelles lignes propres ainsi que l'accès aux fonctions d'interpolation de chaînes.

```javascript
// pas bien
function sayHi(nom) {
   return 'How are you, ' + nom + '?';
}

// pas bien
function sayHi(nom) {
  return ['How are you, ', nom, '?'].join();
}

// pas bien
function sayHi(nom) {
  return `How are you, ${ nom }?`;
}

// bien
function sayHi(nom) {
  return `How are you, ${nom}?`;
}
```

Pourquoi? les backslashes rendent la chaîne moins lisible, de plus ils ne devraient être présent que lorsque c'est nécessaire.

```javascript
// pas bien
const foo = '\'this\' \i\s \"quoted\"';

// bien
const foo = '\'this\' is "quoted"';
const foo = `my name is '${name}'`;
```

⬆ Revenir en haut

<a name='functions'>Fonctions</a>

⬆ Revenir en haut

<a name='properties'>Propriétés</a>

⬆ Revenir en haut

<a name='variables'>Variables</a>

⬆ Revenir en haut

<a name='hoisting'>Hissage</a>

⬆ Revenir en haut

<a name='conditionals'>Expressions conditionnelles & Égalité</a>

⬆ Revenir en haut

<a name='blocks'>Blocs</a>

⬆ Revenir en haut

<a name='comments'>Commentaires</a>

⬆ Revenir en haut

<a name='whitespace'>Espaces</a>

⬆ Revenir en haut

<a name='commas'>Virgules</a>

Edition 5 clarifies the fact that a trailing comma at the end of an ArrayInitialiser does not add to the length of the array. This is not a semantic change from Edition 3 but some implementations may have previously misinterpreted this.

```javascript
// pas bien
var hero = {
  firstName: 'Kevin',
  lastName: 'Flynn',
};

var heroes = [
  'Batman',
  'Superman',
];

// bien
var hero = {
  firstName: 'Kevin',
  lastName: 'Flynn'
};

var heroes = [
  'Batman',
  'Superman'
];
```

⬆ Revenir en haut

<a name='semicolons'>Point-virgules</a>

⬆ Revenir en haut

<a name='type-coercion'>Conversion de types & Contraintes</a>

⬆ Revenir en haut

<a name='nantions'>Conventions de nommage</a>

⬆ Revenir en haut

<a name='accessors'>Accesseurs</a>

⬆ Revenir en haut

<a name='constructors'>Constructeurs</a>

⬆ Revenir en haut

<a name='events'>Évènements</a>

⬆ Revenir en haut

<a name='modules'>Modules</a>

⬆ Revenir en haut

<a name='jquery'>jQuery</a>

⬆ Revenir en haut

<a name='es5'>Compatibilité ECMAScript 5</a>

⬆ Revenir en haut

<a name='testing'>Test</a>

⬆ Revenir en haut

<a name='performance'>Performances</a>

⬆ Revenir en haut

<a name='resources'>Sources</a>

Lisez ceci

Autres Guides de Style

Autres Styles

Pour en savoir Plus

Livres

Blogs

⬆ Revenir en haut

<a name='in-the-wild'>Dans la Nature</a>

Ceci est une liste de toutes les organisations qui utilisent ce guide de style. Envoyez-nous une pull request ou ouvrez une issue (sur le repo original) et nous vous ajouterons à la liste.

<a name='translation'>Traductions</a>

Ce guide de style dans sa version originale :

Et dans d'autres langues :

<a name='guide-guide'>Le Guide du Guide de Style Javascript</a>

<a name='authors'>Contributeurs</a>

<a name='license'>License</a>

(The MIT License)

Copyright (c) 2012 Airbnb

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

⬆ Revenir en haut

};