Heim >Web-Frontend >js-Tutorial >Eine kurze Diskussion über „ && „ und „ || „ in Javascript

Eine kurze Diskussion über „ && „ und „ || „ in Javascript

高洛峰
高洛峰Original
2017-02-03 13:39:401139Durchsuche

Manchmal finden wir viele „&&“ und „||“ im jQuery-Framework oder anderen js-Plug-ins. Was bedeuten diese beiden Zeichen? Wie benutzt man? Ich denke, es ist noch notwendig, etwas tiefer zu gehen.

1. Prinzip:

&& Operatorfunktionen: Solange einer der logischen Operationsausdrücke falsch ist, wird der Wert von false angenommen. Wenn er wahr ist, wird er befolgt. und wenn es falsch ist, wird es vorher genommen.

||. Operatoreigenschaften: Solange einer der logischen Operationsausdrücke wahr ist, wird der Wert true übernommen. Wenn er wahr ist, wird er vorangestellt, und wenn er falsch ist, wird er übernommen wird am Ende genommen.

In js logischen Operationen wissen wir, dass die fünf Datentypen 0, „“, null, false, undefiniert und NaN als falsch beurteilt werden. Dann können wir während der logischen Operation von js entsprechende Urteile und Prozesse basierend auf den oben genannten Prinzipien und diesen fünf Datentypen treffen. Gehen Sie direkt zur DEMO...

2. Original-DEMO:

Zeigen Sie zuerst das Problem! ! !

Wenn wir die Note beispielsweise anhand der Leistung des Schülers beurteilen möchten: 90 Punkte bedeuten A, 80 Punkte bedeuten B, 60 Punkte bedeuten C und der Rest bedeutet D.

Dann können wir das machen:

JS-Code:

var score = 90;
var grade = '';
if(score === 90){
 grade = "A";
}else if(score === 80){
 grade = "B";
}else if(score === 60){
 grade = "C";
}else{
 grade = "D";
}
console.log("当前学生等级为:" + grade); // 当前学生等级为:A

Oder das:

var score = 90;
var grade = '';
switch(score){
 case 90:
  grade = "A";
  break;
 case 80:
  grade = "B";
  break;
 case 60:
  grade = "C";
  break;
 default:
  grade = "D";
  break;
};
console.log("当前学生等级为:" + grade); // 当前学生等级为:A

3. DEMO optimieren:

Wenn wir „ &&“ und „ ||“ verwenden, müssen wir tatsächlich nicht so mühsam sein wie oben.

var score = 90;
var grade = (score===90 && 'A') || (score===80 && 'B') || (score===60 && 'C') || 'D';
console.log("当前学生等级为:" + grade); // 当前学生等级为:A

Der obige Code kann wie folgt verstanden werden:

Wenn der Wert von Score gleich 90 ist, dann ist der logische Ausdruck von Score===90 wahr ist (also wahr), wird die Zuweisungsoperation von 'A' ausgeführt und die nachfolgende logische Operation „||“ kann ebenfalls ignoriert werden (da das Merkmal des „||“-Operators darin besteht, dass der vorherige Wert einmalig ist). stimmt, es besteht keine Notwendigkeit, es später auszuführen.

Wenn der Wert von „score“ nicht gleich 90 ist, gilt der logische Ausdruck „score===90“ nicht (d. h. gemäß den Eigenschaften des „&&“-Operators wir). Beachten Sie, dass „(score=== 90 && ‚A‘)“ dieser Code die nachfolgende Zuweisungsoperation von „A“ nicht gleichzeitig ausführt, da der gesamte Code „(score===90 && ‚A‘)“ ist. " ist falsch, dann wird gemäß der Eigenschaft "||" der gesamte logische Ausdruck weiterhin ausgeführt.

Wenn alle vorherigen logischen Ausdrücke nicht wahr sind, lautet die endgültige Notenzuweisung entsprechend den Merkmalen von „||“ (wenn alle falsch sind, wird der letzte genommen). D".

Wir können auch das JSON-Formular verwenden, um die oben genannten logischen Operationen zu verarbeiten:

var score = 90;
var grade = {90:"A", 80:"B", 60:"C"}[score] || 'D';
console.log("当前学生等级为:" + grade); // 当前学生等级为:A

Hier verwenden wir die Eigenschaften des JSON-Objekts zum Lesen, wenn „JSON-Objekt .properties“ Wenn „value“ existiert (wahr ist), wird der Schlüsselwert (A, B oder C) des entsprechenden Attributs abgerufen. Wenn der Score-Attributwert im JSON-Objekt nicht vorhanden ist, wird der Inhalt nach „||“ ausgeführt, d. h. der Note wird der Wert „D“ zugewiesen.

Natürlich werden wir feststellen, dass der obige Zahlenvergleich nicht sehr praktisch ist. Wenn die Punktzahl eines Schülers beispielsweise 85 Punkte beträgt, lautet die Note auch „D“, was offensichtlich unangemessen ist! ! !

So können wir den obigen Code optimieren und den „Gleichheitsvergleich“ der Werte in „Bereichsintervallvergleich“ ändern.

var score = 85;
var grade = (score>=90 && 'A') || (score>=80 && 'B') || (score>=60 && 'C') || 'D';
console.log("当前学生等级为:" + grade); // 当前学生等级为:B

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder Arbeiten helfen kann Chinesische Website!

Weitere Artikel zu „ &&“ und „ ||“ in JavaScript finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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