En JavaScript, la evaluación de un valor en un contexto lógico, como en Las declaraciones if o las comparaciones booleanas pueden producir resultados inesperados. Este comportamiento se debe al mecanismo de coerción de tipos de JavaScript.
JavaScript escribe libremente sus valores y, cuando se utiliza una cadena o un valor numérico en un contexto lógico, se somete a coerción de tipos para convertirlo en un valor booleano. En esta conversión, las cadenas no vacías y los números distintos de cero se evalúan como verdaderos, mientras que las cadenas vacías y los números cero se evalúan como falso.
Por lo tanto, cuando comparas "0" con falso usando == o === , devuelve verdadero porque la coerción de tipos convierte tanto "0" (una cadena no vacía) como falso (un valor similar a cero) en verdadero.
Sin embargo, cuando se utiliza una declaración if, "0" solo evalúa a verdadero. Esto se debe a que si las declaraciones utilizan internamente un valor booleano forzado, que devuelve verdadero para cadenas no vacías.
Para evitar cualquier ambigüedad, se recomienda utilizar el operador de igualdad estricta === al comparar valores primitivos, como realiza una comparación sin coerción de tipo. Esto garantiza que "0" se evalúe correctamente como falso cuando sea necesario.
Consulte las tablas adjuntas para obtener una representación concisa del comportamiento verdadero/falso de JavaScript para varios tipos de datos. Recuerde, para comparaciones de verdadera igualdad, opte siempre por ===.
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