Heim > Web-Frontend > Front-End-Fragen und Antworten > Welche Arten von Javascript-Schleifenanweisungen gibt es?

Welche Arten von Javascript-Schleifenanweisungen gibt es?

青灯夜游
Freigeben: 2023-01-07 11:43:52
Original
8732 Leute haben es durchsucht

Schleifenanweisungen umfassen: 1. for-Schleife; 3. while-Schleife; 6. forEach-Schleife; Filterschleife ;8. „Object.keys“ durchläuft die Eigenschaften des Objekts.

Welche Arten von Javascript-Schleifenanweisungen gibt es?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

In der Projektentwicklung ist unabhängig davon, auf welchem ​​Framework sie aufbaut, eine Datenverarbeitung erforderlich, und die Verarbeitungsdaten können nicht von verschiedenen Durchlaufschleifen getrennt werden. Es gibt viele Möglichkeiten, in JavaScript eine Schleife durchzuführen. Hier sind einige gängige js-Schleifen.

1. for-Schleife

Die for-Anweisung wird hauptsächlich zum Ausführen einer Schleife verwendet, die die Anzahl der Ausführungen bestimmt. Die grundlegende Syntax der

for-Anweisung lautet wie folgt:

for([初始值表达式];[条件表达式];[增量表达式]){
   循环体语句;
}
Nach dem Login kopieren

Erklärung:

  • "Anfangswertausdruck": Legen Sie den Anfangswert für die Schleifenvariable fest;

  • "Bedingter Ausdruck": Als Basis für Sie können entscheiden, ob Sie in die Schleife eintreten möchten. Es handelt sich um einen beliebigen Ausdruck, im Allgemeinen handelt es sich jedoch um einen relationalen Ausdruck oder einen logischen Ausdruck, und sein Wert ist wahr oder falsch. Vor jeder Ausführung der Schleife wird der Wert des bedingten Ausdrucks beurteilt. Wenn der Wert wahr ist (der Wert ist wahr oder ungleich 0 oder nicht leer), wird die Schleifenanweisung ausgeführt. Andernfalls wird die Schleife verlassen und der Code nach der Schleifenanweisung ausgeführt ": Aktualisieren Sie den Wert der Schleifenvariablen basierend auf diesem Ausdruck.

  • Jeder der oben genannten 3 Ausdrücke kann weggelassen werden, es sollte jedoch beachtet werden, dass in for() nicht weggelassen werden kann. Wenn also alle drei Ausdrücke weggelassen werden, wird die for-Anweisung zu: for(;;){Loop Body Statement}. Zu diesem Zeitpunkt ist zu beachten, dass die Schleife in eine Endlosschleife eintritt, wenn im Schleifenkörper keine Anweisung zum Verlassen der Schleife vorhanden ist.

  • Beispiel:
     var sum = 0;
     for(var i = 1; i <= 100;i++){        //在for语句中使用var声明循环变量,使代码更简洁
         sum += i;
     }
     alert("1~100的累加和sum=" + sum);
Nach dem Login kopieren

2. for...in

Die for...in-Schleife dient hauptsächlich zum Durchlaufen von Objekten. Wenn Sie den entsprechenden Schlüsselwert des Objekts erhalten möchten, verwenden Sie for.. .in oder praktischer

var a = [1, 2, ,,,,,,true,,,,,,, "a",,,,,,,,,,,,,,,4,,,,,56,,,,,,"b"];  //定义数组
var b = [], num = 0;
for (var i = 0; i < a.length; i ++) {  //遍历数组
    if (typeof a[i] == "number")  //如果为数字,则返回该元素的值
        b.push(a[i]);
    num ++;  //计数器
}
console.log(num);  //返回42,说明循环了42次
console.log(b);  //返回[1,2,4,56]
Nach dem Login kopieren

3. While-Schleife

Die while-Anweisung ist die am häufigsten verwendete Schleifenanweisung. Sie wird häufig in Programmen verwendet, in denen Sie eine Schleife nur basierend auf Bedingungen ausführen müssen, ohne sich um die Anzahl der Schleifen zu kümmern Schleifen.

while 语句的基本语法如下:
while(条件表达式){
     循环体;
}
Nach dem Login kopieren
Beschreibung:

Bedingter Ausdruck: Es handelt sich um eine Schleifenkontrollbedingung, die in Klammern gesetzt werden muss. Es kann sich um einen beliebigen Ausdruck handeln, im Allgemeinen handelt es sich jedoch um einen relationalen Ausdruck oder einen logischen Ausdruck, und der Wert ist wahr oder FALSCH. Hinweis: Werte, die wahr, nicht 0 und nicht leer sind, sind alle wahre Werte, andernfalls sind sie falsche Werte.

  • Schleifenkörper: Stellt Operationen dar, die wiederholt ausgeführt werden müssen. Es kann sich um eine einfache Anweisung oder eine zusammengesetzte Anweisung handeln. Wenn es sich um eine einfache Anweisung handelt, können die geschweiften Klammern {} weggelassen werden, andernfalls müssen die geschweiften Klammern {} verwendet werden.

  • Wenn die while-Anweisung ausgeführt wird, wird zunächst der Wert des bedingten Ausdrucks beurteilt. Wenn er wahr ist, wird die Schleifenkörperanweisung ausgeführt, und dann wird der bedingte Ausdruck beurteilt Die Body-Anweisung wird weiterhin ausgeführt. Andernfalls wird die Anweisung ausgeführt, die auf die While-Anweisung folgt. Wenn der Wert des Ausdrucks bei der ersten Auswertung falsch ist (entweder falsch oder 0 oder null usw.), wird der Schleifenkörper kein einziges Mal ausgeführt.

  • Damit die While-Schleife normal endet, müssen im Schleifenkörper Anweisungen vorhanden sein, die die Schleifenbedingungen ändern, oder andere Anweisungen zum Beenden der Schleife Das heißt, der Schleifenkörper wird kontinuierlich ausgeführt.

Zum Beispiel verursacht die folgende Schleifenanweisung eine Endlosschleife.

var i=1,s=0;
whiel(i<=5){
    s+=i;      
}
Nach dem Login kopieren

Der Anfangswert von i im obigen Code ist 1. Da der Wert der Variablen i im Schleifenkörper nicht geändert wird, ist der Ausdruck i<=5 immer wahr, sodass der Schleifenkörper immer ausgeführt wird.

Endlosschleifen beanspruchen viel Systemressourcen und können schließlich zum Systemabsturz führen. Daher müssen wir beim Programmieren darauf achten, Endlosschleifen zu vermeiden.

     var sum = 1, i = 1;
     var ex = 1;
     while(sum <= 1.5){
         sum += 1/((i + 1)*(i + 1));
         if(sum > 1.5)
              break;
         i++;
         ex +=" + 1/(" + i + "*" + i + ")";
     }
     alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);
Nach dem Login kopieren

4. do...while-Schleife

Die do...while-Anweisung ist eine Variation der while-Anweisung. Der Unterschied zwischen den beiden besteht darin, dass die while-Anweisung die Schleifenbedingungsbeurteilung vor der Ausführung der Schleifenkörperanweisung platziert, während die do...while-Anweisung die Schleifenbedingungsbeurteilung nach der Ausführung der Schleifenkörperanweisung platziert. Die grundlegende Syntax der do...while-Anweisung lautet wie folgt:

do{
  循环体;
}while (条件表达式);
Nach dem Login kopieren

Die Bedeutung von „bedingter Ausdruck“ und „Schleifenkörper“ ist dieselbe wie die der while-Anweisung. Hier ist zu beachten, dass die do...while-Anweisung mit; enden muss. Wenn sie nicht im Code hinzugefügt wird, fügt JavaScript sie automatisch hinzu. Wenn die

do...while-Anweisung ausgeführt wird, wird zuerst die Schleifenkörperanweisung ausgeführt und dann der Wert des bedingten Ausdrucks beurteilt. Wenn der Wert wahr ist (der Wert ist wahr oder ein Wert ungleich 0), Die Schleifenkörperanweisung wird erneut ausgeführt. Die do...while-Anweisung führt den Schleifenkörper mindestens einmal aus, was sich deutlich von der while-Anweisung unterscheidet.

     var sum = 1, i = 1;
     var ex = 1;
     do{
         sum += 1/((i + 1)*(i + 1));
         if(sum > 1.5)
              break;
         i++;
         ex +=" + 1/(" + i + "*" + i + ")";
     }while(sum <= 1.5);
     alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);
Nach dem Login kopieren

5. forEach

Die Verwendung von forEach ähnelt der Verwendung von map, mit der Ausnahme, dass die forEach-Methode keinen Wert zurückgibt, sondern nur zum Bearbeiten von Daten verwendet wird und die Schleife nicht in der Mitte gestoppt werden kann , und alle Mitglieder werden immer durchlaufen. Die Schleife kann nicht in der Mitte gestoppt werden und alle Mitglieder werden immer durchlaufen

let arr = [1,2,3,4,5]
let arr2 = arr.map((n)=>{
      return n+1
})
console.log(arr2) // [2,3,4,5,6]
console.log(arr) // [1,2,3,4,5]
Nach dem Login kopieren

map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身。

let arrObj = [{
    id: 1,
    name: &#39;xiaohua&#39;
},{
    id:2,
    name: &#39;xiaomin&#39;
},{
    id:3,
    name: &#39;xiaobai&#39;
}]
arrObj.map((item,index,arr)=>{
    console.log(arr) // arrObj
    console.log(index)  // 0 1 2
    console.log(item.name) // xiaohua xiaomin xiaobai
})
Nach dem Login kopieren

七、filter过滤循环

filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。

let arrObj = [{
    id: 1,
    name: &#39;xiaohua&#39;
},{
    id:2,
    name: &#39;xiaomin&#39;
},{
    id:3,
    name: &#39;xiaobai&#39;
}]
let arr2 = arrObj.filter((item,index,arr)=>{
    return (item.name === &#39;xiaohua&#39;)
})
console.log(arr2)  // [{id:1,name:&#39;xiaohua}]
Nach dem Login kopieren

ECMAScirpt5 中 Array 类中的 filter 方法使用目的是移除所有的 ”false“ 类型元素 (false, null, undefined, 0, NaN or an empty string):

let arr = [3, 4, 5, 2, 3, undefined, null, 0, ""];
let arrNew = arr.filter(Boolean);
console.log(arrNew)  //  [3, 4, 5, 2, 3]
Nach dem Login kopieren

Boolean 是一个函数,它会对遍历数组中的元素,并根据元素的真假类型,对应返回 true 或 false.

八、Object.keys遍历对象的属性

Object.keys方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性名,且只返回可枚举的属性。

let obj = {name: &#39;xiaohua&#39;, sex: &#39;male&#39;, age: &#39;28&#39;}
console.log(Object.keys(obj))
// ["name", "sex", "age"]
Nach dem Login kopieren

判断一个对象是否是空对象,可以用Object.keys(obj).length>0

【推荐学习:javascript高级教程

Das obige ist der detaillierte Inhalt vonWelche Arten von Javascript-Schleifenanweisungen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage