Web HTML - Javascript

Le javascript est très utilisé et indispensable en web, et adoré. Mais dans les années 2000, il était aussi inspensable mais méprisé...
Les temps et les modes changent.
Attention aux optimisations
Malheureusement, on n'en parle pas souvent. Gagner quelques milli-secondes n'a pas toujours de l'importance face aux couts de
maintenance cachés. Des milli-secondes gagnées, sur une méthode/fonction peut aussi engendrer des temps de correction importants.
Exemple (cet exemple est aussi valable en java, et c#....)
var iAlpha = 1;
var iBeta = 2;
var iGamma = 0;
if (iAlpha == 1) || (iiBeta == 1) (++iGamma == 1) { .... }
console.log("iGamma: " + iGamma)
Resultat:
iGamma: 0
var iAlpha = 0;
var iBeta = 5;
var iGamma = 0;
if (iAlpha == 1) || (iiBeta == 1) (++iGamma == 1) { .... }
console.log("iGamma: " + iGamma)
Resultat:
iGamma: 1
Etonnant !!!!!!
Pourquoi ce comportement ? A cause de l'optimisation...
Dans le premier cas, la 1iere condition est true, et il n'y a pas besoin d'aller voir les autres conditions. Et on oublie le ++iGamma
Dans le second cas, la 1iere et la 2ieme condition sont fausses. A l'execution,, la 3ieme condition doit être vérifiée. Et ++iGamma doit être traitée...
D'ou la différence de comportement....
Initialisation des variables en javascript
L'une des origines des bug en javascript est l'oubli de l'initialisation des variables.
Il existe un petit moyen d'éviter cela:
sReponse = sReponse || 'Oui';
sReponse, si elle est déjà définie, gardera sa valeur, sinon, 'Oui' lui est affectée.