Heim  >  Artikel  >  Web-Frontend  >  Gibt es in es6 ein kaufmännisches Und?

Gibt es in es6 ein kaufmännisches Und?

青灯夜游
青灯夜游Original
2022-11-01 19:24:251243Durchsuche

hat ein kaufmännisches Und. In es6 ist „&&“ ein logischer UND-Operator, der eine boolesche UND-Operation ist. Nur wenn beide Operanden wahr sind, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben. Logisches UND ist eine Art Kurzschlusslogik. Wenn der Ausdruck auf der linken Seite falsch ist, wird das Ergebnis direkt zurückgegeben und der Ausdruck auf der rechten Seite wird nicht mehr ausgewertet.

Gibt es in es6 ein kaufmännisches Und?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

In es6 gibt es ein &-Symbol und „&&“ ist der logische UND-Operator.

Logische UND-Verknüpfung &&

Die logische UND-Verknüpfung (&&) ist eine boolesche UND-Verknüpfung. Gibt nur dann „true“ zurück, wenn beide Operanden wahr sind, andernfalls wird „false“ zurückgegeben. Die detaillierte Beschreibung finden Sie in der Tabelle.

false
Logische UND-Verknüpfung
Erster Operand Zweiter Operand Operationsergebnis
wahr wahr wahr
wahr falsch falsch
falsch wahr false
false false false

    Logisches UND ist eine Art Kurzschlusslogik. Wenn der Ausdruck auf der linken Seite falsch ist, wird das Ergebnis kurzgeschlossen wird ohne weitere Operationen auf der rechten Seite zurückgegeben. Die Operationslogik ist wie folgt:
  • Schritt 1: Berechnen Sie den Wert des ersten Operanden (Ausdruck links).
  • Schritt 2: Ermitteln Sie den Wert des ersten Operanden. Wenn der Wert des Ausdrucks auf der linken Seite in „false“ konvertierbar ist (z. B. null, undefiniert, NaN, 0, „“, false), wird die Operation beendet und der Wert des ersten Operanden wird direkt zurückgegeben.
  • Schritt 3: Wenn der erste Operand in „True“ konvertiert werden kann, werten Sie den zweiten Operanden aus (Ausdruck auf der rechten Seite).
  • Schritt 4: Geben Sie den Wert des zweiten Operanden zurück.

Beispiel 1

Der folgende Code verwendet logische UND-Operationen, um Variablen zu erkennen und zu initialisieren.

var user;  //定义变量
(! user && console.log("没有赋值"));  //返回提示信息“没有赋值”

ist äquivalent zu:

var user;  //定义变量
if (! user){  //条件判断
    console.log("变量没有赋值");
}

Wenn der Wert der Variablen user 0 ist oder ein falscher Wert, z. B. eine leere Zeichenfolge, in einen booleschen Wert konvertiert wird, ist er falsch, nachdem der Variablen ein Wert zugewiesen wurde immer noch die Meldung, dass der Variablen kein Wert zugewiesen wurde. Daher muss der Entwurf sicherstellen, dass der Ausdruck auf der linken Seite des logischen UND einen vorhersehbaren Wert zurückgibt.

var user = 0;  //定义并初始化变量
(! user && console.log("变量没有赋值"));  //返回提示信息“变量没有赋值”

Der rechte Ausdruck sollte keine gültigen Operationen wie Zuweisung, Inkrementierung, Dekrementierung und Funktionsaufruf enthalten, denn wenn der linke Ausdruck falsch ist, wird der rechte Ausdruck direkt übersprungen, was ein Potenzial hat Auswirkungen auf spätere Operationen.

Beispiel 2

Die Verwendung logischer UND-Operatoren kann das Entwerfen mehrerer Verzweigungsstrukturen ersetzen.

var n = 3;
(n == 1) && console.log(1);
(n == 2) && console.log(2);
(n == 3) && console.log(3);
( ! n ) && console.log("null");

Der obige Code entspricht der folgenden Struktur mit mehreren Zweigen.

var n = 3;
switch(n){
    case1:
        console.log(1);
        break;
    case2:
        console.log(2);
        break;
    case3:
        console.log(3);
        break;
    default:
        console.log("null");

Der Operand der logischen UND-Operation kann ein beliebiger Werttyp sein und gibt den Wert des ursprünglichen Ausdrucks zurück, anstatt den Operanden in einen booleschen Wert umzuwandeln und ihn dann zurückzugeben.

1) True, wenn das Objekt in einen booleschen Wert konvertiert wird. Beispielsweise wird ein leeres Objekt logisch mit einem booleschen Wert UND-verknüpft.

console.log(typeof ({} && true));  //返回第二个操作数的值  true的类型:布尔型
console.log(typeof (true && {}));  //返回第二个操作数的值  {}的类型:对象

2) Wenn der Operand null enthält, ist der Rückgabewert immer null. Beispielsweise gibt die logische UND-Verknüpfung der Zeichenfolge „null“ mit einem Wert vom Typ null unabhängig von der Position immer null zurück.

console.log(typeof ("null" && null));  //返回null的类型:对象
console.log(typeof (null && "null"));  //返回null的类型:对象

3) Wenn der Operand NaN enthält, ist der Rückgabewert immer NaN. Beispielsweise gibt die logische UND-Verknüpfung der Zeichenfolge „NaN“ mit einem Wert vom Typ NaN immer NaN zurück, unabhängig von der Position.

console.log(typeof ("NaN" && NaN));  //返回NaN的类型:数值
console.log(typeof (NaN && "NaN"));  //返回NaN的类型:数值

4) Für Infinity wird es in true konvertiert und nimmt wie gewöhnliche Werte an logischen UND-Verknüpfungen teil.

console.log(typeof ("Infinity" && Infinity));  //返回第二个操作数Infinity的类型:数值
console.log(typeof (Infinity && "Infinity"));  //返回第二个操作数"Infinity"的类型:字符串

5) Wenn der Operand undefiniert enthält, geben Sie undefiniert zurück. Beispielsweise gibt die logische UND-Verknüpfung der Zeichenfolge „undefiniert“ mit einem Wert vom Typ „undefiniert“ unabhängig von der Position immer „undefiniert“ zurück.

console.log(typeof ("undefined" && undefined));  //返回undefined
console.log(typeof (undefined && "undefined"));  //返回undefined
Erweitertes Wissen: Die wenig bekannten Operationen von && und __ in ES6

Wie wir alle wissen, stellt in es6 der logische Operator && die Bedingung dar, ||. stellt stattdessen die Bedingung or dar

let info = {
  name:"long",
  age:null
};

//&&
//info的name与age同时为真,则结果为真
if(info.name && info.age){
  console.log("与条件"); //与条件
}else{
  console.log("失败");
}

//||
//info的name或age,只要有一个为真,则结果为真
if(info.name || info.age){
  console.log("或条件"); //或条件
}else{
  console.log("失败");
}

von if/ else

Sie können jedoch auch im Namen von if/else vereinfacht werden

let info = {name:"long"};

let name = info && info.name; //long

let isVip = false;
let vipPrice = isVip || 19;//19
decide() && true();

//如果decide()执行后为true,则执行true(),并输出true()的值;如果decide()执行后为false,则输出decide()执行后的结果,且不执行true()


//预计使用场景,有一个mongo查询条件where,当name存在时,匹配name数据
where= {age:19};
name && where.name = name;
decide() || false();

//如果decide()执行后为true,则执行decide(),并输出decide()的值,fasle()不执行;如果decide()执行后为false,则执行fasle(),且输出false()的结果
decide() && true() || fasle();

//如果decide()执行后为true,则执行true(),并输出true()的值;
//如果decide()执行后为false,则执行false(),并输出false()的值
[Verwandte Empfehlungen: Javascript-Video-Tutorial,

Web-Frontend🎜]🎜

Das obige ist der detaillierte Inhalt vonGibt es in es6 ein kaufmännisches Und?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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