J'ai écrit beaucoup de code ES6 pour io.js récemment. Il n’ya pas beaucoup de code dans la nature à apprendre, alors j’ai l’impression de définir mes propres conventions au fur et à mesure.
Ma question est quand utiliser constvs let.
J'ai appliqué cette règle: si possible, utilisez const. Utilisez uniquement letsi vous savez que sa valeur doit changer. (Vous pouvez toujours revenir en arrière et changer un consten un lets'il s'avère que vous devez changer sa valeur plus tard.)
La principale raison de cette règle est qu'il est facile à appliquer de manière cohérente. Il n'y a pas de zones grises.
En réalité, lorsque j’applique cette règle, en pratique, 95% de mes déclarations le sont const. Et cela me semble bizarre. Je n'utilise que letpour des choses comme idans une forboucle, ou occasionnellement pour des choses comme les totaux accumulés de Fibonacci (qui ne sont pas très fréquents dans la vie réelle). Cela m'a surpris - il s'avère que 95% des «variables» dans mon code ES5 à ce jour étaient pour des valeurs qui ne varient pas. Mais voir constpartout dans mon code me semble mal.
Ma question est donc la suivante: est-il acceptable d’utiliser constautant? Devrais-je vraiment faire des choses comme const foo = function () {...};?
Ou devrais-je réserver constpour ce genre de situations où vous codez en dur un littéral en haut d'un module - le genre que vous faites en majuscules, comme const MARGIN_WIDTH = 410;?
function foo() {...}est meilleur que<anything> foo = function() {...}
function foo() {...}peut entraîner une confusion mineure lors du débogage, en raison du levage. De plus, son existence signifie que nous avons deux constructions qui font la même chose, mais que l’une d’elles ne fonctionne que dans un contexte très spécifique. (Vous pouvez utiliser une expression de fonction n'importe où une expression peut exister, mais vous ne pouvez utiliser qu'une déclaration de fonction au niveau de l'instruction.) Si vous préférez être bref, le problème pourrait simplement être que la syntaxe de l'expression de fonction utilise l'intégralité du mot function.
constautant.