¿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:
true
false
true
- B:
false
false
true
- C:
true
false
false
- D:
false
true
true
Repuesta en el primer comentario.
Top comments (1)
Repuesta correcta:
C:
true
false
false
Veamos 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 dea
yb
, 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,a
yb
tienen el mismo valor, peroa
es de tiponumber
yb
esta siendo inicializada usando el contructorNumber
, por ende es un objeto; entonces obtendremos unfalse
.En el tercer
console.log
Al 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
===
.