Confusión sobre la veracidad de los arreglos vacíos y la igualdad con lo falso
En JavaScript, los arreglos vacíos se consideran veraces. Sin embargo, cuando se compara con el valor primitivo falso, también se evalúan como falso. Este comportamiento desconcertante se puede atribuir a las conversiones de tipos implícitas realizadas por los operadores de igualdad.
Echemos un vistazo más de cerca al código de ejemplo proporcionado:
var arr = []; console.log('Array:', arr); if (arr) console.log("It's true!"); if (arr == false) console.log("It's false!"); if (arr && arr == false) console.log("...what??");
La primera declaración if verifica si arr está presente (ya que es un objeto). Dado que arr es un objeto Array, está presente y la condición se evalúa como verdadera.
Sin embargo, la segunda declaración if compara el valor de arr (después de llamar a toString()) con el valor primitivo falso. En JavaScript, [] se convierte en una cadena vacía ("") cuando se llama con toString(), que se considera un valor falso (junto con nulo, indefinido, 0, etc.). Por lo tanto, la condición también se evalúa como falsa.
La tercera declaración if combina las dos condiciones anteriores utilizando el operador AND (&&). Dado que tanto arr (ahora una cadena vacía) como arr == false (verdadero y falso) se evalúan como falso, toda la condición se evalúa como falsa.
En conclusión, las matrices vacías son verdaderas en el sentido de que se consideran presentar y evaluar como verdadero cuando se usa en contextos de objetos o condicionales. Sin embargo, cuando se compara con el valor primitivo falso, se evalúa como falso debido a conversiones de tipos implícitas realizadas por operaciones de igualdad.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3