JSLint se plaint que le code suivant (exemple inutile) n'est pas valide:
(function (x) {
"use strict";
if (x === 1) {
return 1;
} else if (x === 2) {
return -1;
}
return 0;
}(1));
Erreur: problème à la ligne 4, caractère 9: "else" inattendu après "return".
retour 1;
Cela suggère-t-il sérieusement qu'il est mauvais d'utiliser des instructions de retour dans une structure if/else?
Il pense que cette version est très bien:
(function (x) {
"use strict";
var returnval = 0;
if (x === 1) {
returnval = 1;
} else if (x === 2) {
returnval = -1;
}
return returnval;
}(1));
Cela vous dit simplement que else
après return
est superflu. Ce qui suit est très bien:
(function (x) {
"use strict";
if (x === 1) {
return 1;
}
if (x === 2) {
return -1;
}
return 0;
}(1));
Ce que j'ai trouvé avec jslint, c'est que si vous respectez les règles - 50% sont ridicules mais n'ont aucun impact négatif sur votre code. Les 50% restants (ou plus) vous donneront un bon avantage. Faites-le pour les 50% restants. Cet exemple particulier vous oblige à être explicite sur l'inverse d'une condition ou similaire ... au lieu de le laisser implicite avec un autre ... la même chose s'applique à if/else je veux dire.
Il vaut mieux qu'une fonction renvoie toujours quelque chose car elle ajoute de la cohérence. JSLint est connu pour être assez strict et blesser les sentiments des programmeurs. Je ne peux pas l'aider. Personnellement, je pense que la version 1 est très bien