Je trouve l'extrait suivant en creusant à travers un code:En utilisant && comme remplacement pour instruction IF
"string" != typeof myVar && (myVar = "");
Je comprends ce qui se passe ici. Si myVar n'est pas une chaîne, cette première condition est évaluée à "true", donc la seconde condition est évaluée, ce qui amène myVar à "". Il est donc essentiellement un remplacement pour les éléments suivants:
if ("string" != typeof myVar)
myVar = "";
La seule différence notable est que le premier des deux stratégies est également une déclaration de retour, bien que le code que je trouve n'utilise pas la valeur retournée. Donc, je me demande:
- Y a-t-il des avantages ou des inconvénients à l'une ou l'autre stratégie?
- Si le seul pro de la première stratégie est la capacité à renvoyer une valeur, l'extrait que j'ai trouvé est-il considéré comme étant de mauvaise qualité, car il est plus difficile à lire?
Je pense que le plus gros problème est la lisibilité. Il est beaucoup plus facile de regarder la déclaration if et de comprendre ce qui se passe. –
Si vous aimez Star Wars, le code de Yoda est toujours génial, mettre la chaîne devant le contrôle de typeof devant l'assignemnt etc. – adeneo
Je pense toujours à [KISS] (http://en.wikipedia.org/wiki/ KISS_principle). –