Depuis que je travaille sur VB et Delphi, je suis toujours un peu confus sur la façon de spécifier la valeur de la boucle lors de l'écriture d'une instruction C / C ++ for telle que JavaScript, alors prenez-en note.
La manière simple d'écrire lorsque vous voulez que la valeur d'index boucle de 0 à longueur -1 est la suivante.
i ++ et i-- respectent JsLint et essayez de ne pas l'utiliser.
  var str = 'abc';
  for (var i = 0; i <= str.length - 1; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
Cependant, je pense que c'est un langage caractéristique de l'instruction for de type C, mais le jugement final fait partie de la boucle for pour chaque boucle
i <= str.length - 1
 Comme cela est évalué, le processus d'obtention de str.length se produit à chaque fois, ce qui ralentit un peu la boucle.
 Par conséquent, il est préférable d'attribuer d'abord le nombre de boucles à une variable en mettant l'accent sur l'accélération.
```javascript
  var str = 'abc';
  for (var i = 0, il = str.length - 1; i <= il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
Ceci est également écrit comme ceci.
  var str = 'abc';
  for (var i = 0, il = str.length; i < il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
Cela rend difficile la lecture de la valeur finale de la boucle, ce qui me met toujours un peu mal à l'aise, mais pour les gens en C / C ++ / Java, ce n'est pas illisible, c'est donc un code que je vois souvent. Ce serait bien de pouvoir le lire.
Dans l'ordre inverse, il vaut mieux écrire comme ça.
  var str = 'abc';
  for (var i = str.length - 1; 0 <= i; i -= 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a
De plus, si vous concevez et utilisez la syntaxe for, vous pouvez également effectuer les opérations suivantes.
  for (var i = str.length; i--;) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a
Le texte complet du contrôle de fonctionnement est le suivant.
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title></title>
<script>
  var str = 'abc';
  for (var i = 0; i <= str.length - 1; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
  for (var i = 0, il = str.length - 1; i <= il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
  for (var i = 0, il = str.length; i < il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c
  for (var i = str.length - 1; 0 <= i; i -= 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a
  for (var i = str.length; i--;) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a
</script>
</head><body>
</body></html>
        Recommended Posts