Comprensión de tres capas de || y && en js

|| El uso de && tiene tres niveles. ¿A cuál perteneces?

1. Juicio de valor booleano simple

	var res = true && false
	第一个操作数   第二个操作数     结果
	   true           false       false
	   true           true         true
	   false          false        false
	   false           true         true

2. La expresión se convierte a un valor booleano para un juicio (si y)

var a = 1;
var b = 2;
//如果a==3 并且b==2  那么就怎样怎样
var res =  a==3 && b==2  //false

3. Operador de cortocircuito (si es así) (primero haga un juicio y luego ejecute la siguiente declaración)

&& Si el primer número ya es falso, es necesario continuar, obviamente no es necesario, porque el resultado ya es claro. Pero si el primer número es verdadero, entonces obviamente se debe ejecutar el segundo número.

var a = 1;
var b = 2;
//如果a判断是1 是true那么就去执行将b重新赋值为10。   第一个数是判断 第二个是操作
a==1 && b=10  

❏ Si el primer operando es un objeto, se devuelve el segundo operando;
❏ Si el segundo operando es un objeto, el objeto solo se devolverá si el resultado de la evaluación del primer operando es verdadero;
❏ Si ambos operandos son objetos, devuelva el segundo operando;
❏ Si el primer operando es nulo, devuelve nulo;
❏ Si el primer operando es NaN, devuelve NaN;
❏ Si el primer operando es NaN, devuelve NaN Si un operando no está definido, devuelve indefinido.

4. Valor devuelto

Según el tercer hecho, se puede saber que su valor de retorno no es necesariamente un valor booleano, sino que depende de la expresión que se ejecute posteriormente.

En el desarrollo real, el valor de retorno de Y lógico no es importante, se utiliza principalmente para la operación de juicio o cortocircuito (juicio y ejecución)

5. El segundo nivel de comprensión de la lógica OR (o o)

6. El tercer nivel de comprensión del OR lógico (si no hay nada, entonces qué) (se usa principalmente para tareas)

多用于赋值
x= a || b

❏ Si el primer operando es un objeto, se devuelve el primer operando;
❏ Si el resultado de la evaluación del primer operando es falso, entonces se devuelve el segundo operando;
❏ Si ambos operandos son objetos, se devuelve el primer operando;
❏ Si ambos los operandos son nulos, se devuelve nulo;
❏ Si ambos operandos son NaN, se devuelve NaN;
❏ Si ambos operandos no están definidos, se devuelve undefined.
Similar al operador lógico Y, el operador lógico O también es un operador de cortocircuito. En otras palabras, si el resultado de la evaluación del primer operando es verdadero, el segundo operando no se evaluará.

7. Prioridad de && || &&> ||

a && b || c
如果a那么就执行b否则就执行c  也就是if   else  的缩写。通常用于执行语句
a是一个判断  b和c是语句

a ? b:c 通常赋值的用的

Supongo que te gusta

Origin blog.csdn.net/weixin_43131046/article/details/114628595
Recomendado
Clasificación