Il y a une question d'entrevue JS, la question est la suivante: quel est le résultat d'exécution du code suivant et pourquoi?
La copie de code est la suivante:
var i, j, k;
pour (i = 0, j = 0; i <10, j <6; i ++, j ++) {
k = i + j;
}
Document.Write (K);
La réponse est de montrer 10. Cette question examine principalement l'opérateur de virgule de JavaScript.
Voici la définition de l'opérateur de virgule par MDN:
L'opérateur de virgule calcule deux opérandes (de gauche à droite) et renvoie la valeur du deuxième opérande.
Selon cette définition, vous pouvez l'étendre:
L'opérateur de virgule calcule deux opérandes ou plus de gauche à droite et renvoie la valeur du dernier opérande.
Vous pouvez sentir le code suivant:
La copie de code est la suivante:
alerte ((0, 9));
alerte ((9, 0));
if (0,9) alert ("ok");
if (9,0) alert ("ok");
Quel est le rôle des opérateurs de virgule dans le code réel?
1. Variables d'échange sans une troisième variable
La copie de code est la suivante:
var a = "a", b = "b";
// Méthode 1
a = [b] [b = a, 0];
// Méthode 2
a = [b, b = a] [0];
2. Simplifiez le code
La copie de code est la suivante:
if (x) {
foo ();
Bar de retour ();
}
autre{
retour 1;
}
Peut être abrégé comme:
La copie de code est la suivante:
Retour x? (foo (), bar ()): 1;