"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué "0" actúa como falso en comparaciones pero como verdadero en declaraciones "if" en JavaScript?

¿Por qué "0" actúa como falso en comparaciones pero como verdadero en declaraciones "if" en JavaScript?

Publicado el 2024-11-07
Navegar:752

Why Does

Desentrañando la paradoja de JavaScript: por qué "0" es falso en comparación pero falso en declaraciones If

En JavaScript, el comportamiento de la primitiva " 0" plantea un enigma para los desarrolladores. Mientras que los operadores lógicos como "==" equivalen "0" a falso, "0" se comporta como verdadero en condiciones "si".

Paradoja de la comparación

El código a continuación se muestra la paradoja de la comparación:

"0" == false // true
false == "0" // true

En este escenario, JavaScript convierte "0" en falso en función de sus valores "verdaderos" y "falso". Valores como "0", "NaN", "nulo" e indefinido se consideran falsos, mientras que otros son verdaderos.

If Statement Anomaly

Sin embargo, la situación se vuelve desconcertante cuando se usa "0" en una declaración "if":

if ("0") console.log("ha") // ha

A pesar de haber sido obligado a falso en las comparaciones, "0" se evalúa como verdadero en condiciones "si". Esto se debe a que las declaraciones "if" en JavaScript tratan todas las cadenas que no están vacías, incluido "0", como veraces.

Tablas de veracidad

Para comprender este comportamiento, Puede consultar las tablas de veracidad de JavaScript. Categorizan los valores según su estado de veracidad/falso en comparación (==) y condiciones de declaración "si" (veraz):

ValorComparaciónSi declaración
Verdadero/Verdaderoverdaderoverdadero
Falso/Falsofalsofalso
"0" (Falso)falsoverdadero

Conclusión

La paradoja del "0" en JavaScript surge de las diferentes interpretaciones de veracidad en comparación (= =) y declaraciones "si" (veraz). Esta es una distinción sutil pero crucial que los desarrolladores deben tener en cuenta para evitar resultados inesperados. Como práctica recomendada, se recomienda utilizar igualdad estricta (===) durante las comparaciones para garantizar evaluaciones precisas.

Último tutorial Más>

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