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