https://www.cnblogs.com/guanghe/p/11157201.html
Escribí tantos JS, solo para descubrir que la gramática de JS pertenece a la familia de lenguajes C, y es bastante diferente de algunas partes del lenguaje C general lenguaje de programación de lenguaje. Entre ellos && y || son un ejemplo.
&& y || en la
familia de lenguajes C tienen una característica, no importa lo que escriba la expresión en un lío, devolverá un valor booleano.
1 , &&
Cuando ambas condiciones son verdaderas, el resultado es verdadero;
Si uno es falso, el resultado es falso;
Cuando la primera condición es falsa, las siguientes condiciones ya no se juzgan;
Nota: Cuando el valor participa en la operación lógica AND, el resultado es verdadero, entonces se devolverá el segundo valor verdadero; si el resultado es falso, se devolverá el primer valor falso.
2 , ||
Siempre que una condición sea verdadera, el resultado es verdadero;
Cuando ambas condiciones son falsas, el resultado es falso;
Cuando una condición es verdadera, las siguientes condiciones ya no se juzgan;
Nota: Cuando el valor participa en la operación lógica OR, el resultado es verdadero y se devolverá el primer valor que sea verdadero, si el resultado es falso, se devolverá el segundo valor que sea falso;
El && y ||
en JS 1, el && y || en JS, cuando aparecen en sentencias de juicio condicional, como si, seguirán las reglas del lenguaje C.
2. El && y || en JS, cuando estaban originalmente en la instrucción de asignación, como asignación de variable, resultado de retorno, etc., seguirán las siguientes reglas:
Expresión a && Expresión b: Calcula el resultado de la expresión a (o función),
si es Verdadero, ejecuta la expresión b (o función) y devuelve el resultado de b;
si es Falso, devuelve el resultado de a;
Expresión a || expresión b: calcula el resultado de la expresión a (o función),
si es Fasle, ejecuta la expresión b (o función) y devuelve el resultado de b;
si es Verdadero, devuelve el resultado de a ;
Ejemplo 1:
1 sea b, c, d;
2 b = verdadero || 0; // b = verdadero;
3 c = falso || 0; // c = 0;
4 d = 1 || 0; // d = 1;
例 2 :
1 // Cambia los miembros con valor booleano falso en la matriz a 0
2 Array.from ([1 ,, 2 ,, 3], (n) => n || 0)
3 // [1, 0, 2 , 0, 3]