1. Aquí está la tarea.
Declarar una función o que funcione como ||, pero sin usar el || operador. /**
2. Esto es lo que probé (en realidad, la gente me dio consejos sobre el retorno b1 ? b1: b2 . Pero no pude entenderlo y no encontré una explicación adecuada al respecto en línea.
function or(b1, b2) { if (b1 == false && b2 == false) return false; else return b1 ? b1 : b2; }3. Aquí están las pruebas de codificación, y el código anterior las pasó todas. Pero, ¿alguien me diría la lógica de b1? b1: b2 . Soy un principiante, por favor ayúdame!
//PRUEBA 1
actual = or("bananas", false); expected = "bananas"; if (actual === expected) { console.log("Yay! Test PASSED."); } else { console.error("Test FAILED. Keep trying!"); console.log(" actual: ", actual); console.log(" expected: ", expected); }//PRUEBA 2
actual = or("", "bananas"); expected = "bananas"; if (actual === expected) { console.log("Yay! Test PASSED."); } else { console.error("Test FAILED. Keep trying!"); console.log(" actual: ", actual); console.log(" expected: ", expected); }//PRUEBA 3
actual = or(true, true); expected = true; if (actual === expected) { console.log("Yay! Test PASSED."); } else { console.error("Test FAILED. Keep trying!"); console.log(" actual: ", actual); console.log(" expected: ", expected); }//PRUEBA 4
actual = or(true, false); expected = true; if (actual === expected) { console.log("Yay! Test PASSED."); } else { console.error("Test FAILED. Keep trying!"); console.log(" actual: ", actual); console.log(" expected: ", expected); }b1? b1 : b2
Esto significa que si b1 es verdadero/válido, simplemente devolverá el resultado debido al código de b1; de lo contrario, simplemente devolverá el resultado debido al código de b2.
b1 ? b1 : b2 está usando una operación ternaria
Si tuviera que escribirlo como una declaración if-else, se vería así
if (b1 === true) { return b1; } else { return b2; }function or(b1, b2) { if (b1 == false && b2 == false) return false; else return b1 ? b1 : b2; } Múltiples cosas están sucediendo Encabezados. Aquí, tiene una función de prueba con verificación falsy . Falsy es ValidateNumber, puede ser nulo, una cadena en blanco o cero. La condición siempre devolverá falso. Si realmente busca probar el valor con el tipo, debe usar === en su lugar.
console.log(Boolean("")) //false console.log(Boolean(null))//false console.log(Boolean(0))//false console.log(Boolean(" "))//true console.log(Boolean("1"))//true