¿Qué imprime este código JavaScript?
let a = 3;
let b = new Number(3);
let c = 3;
console.log(a == b);
console.log(a === b);
console.log(b === c);
- A:
truefalsetrue - B:
falsefalsetrue - C:
truefalsefalse - D:
falsetruetrue
Repuesta en el primer comentario.
Top comments (1)
Repuesta correcta:
C:
truefalsefalseVeamos por que.
En el primer
console.log:Vemos que hacemos una comparación débil con el operador
==, esto significa que solo compararemos los valores deayb, por ende obtendremos untrue.En el segundo
console.log:Hacemos una comparación estricta usando el operador
===, esto significa que compararemos valores y tipos de datos,aybtienen el mismo valor, peroaes de tiponumberybesta siendo inicializada usando el contructorNumber, por ende es un objeto; entonces obtendremos unfalse.En el tercer
console.logAl igual que el caso anterior, intentamos comparar de manera estricta un objeto contra un número, entonces tendremos como resultado un
false.Conclusión: trata de usar simpre
===.