¿Por qué es verdadero 0 == ""
en JavaScript? He encontrado un similar post here, pero ¿por qué el número 0 es una cadena vacía? Por supuesto, 0 === ""
es falso.¿Por qué 0 == "" verdadero en JavaScript
Respuesta
0 == ''
El operando de la izquierda es del tipo Número.
El operando derecho es del tipo String.
En este caso, el operando de la derecha es obligado al número de tipo:
0 == Number('')
que resulta en
0 == 0
Desde el Abstract Igualdad Comparación Algoritmo (número 4) :
Si Type (x) es Number y Type (y) is String, devuelva el resultado de la comparación x == ToNumber (y).
Fuente: http://es5.github.com/#x11.9.3
Gracias, lo esperé al revés, el 0 convertido a cadena y luego falso. –
Sí, por otro lado, esto significa que decir que ambos son falsos, como en las otras respuestas, no es del todo correcto. Porque, como bien lo has demostrado, la razón es que "" => 0. ¡Gracias por tu apoyo! –
@ Horst - sí, eso es correcto. Ambos son falsos, como puede ver si los usa solos en 'if (0)' o 'if (" ")', pero en el caso de una comparación '==' eso no es lo que está sucediendo. (No estoy seguro de por qué Šime también dejó un comentario anterior diciendo "Porque ambos valores son falsos".) – nnnnnn
- 1. ¿Por qué es "0 === -0" verdadero en JavaScript?
- 2. ¿Por qué es ''> 0 verdadero en Python?
- 3. ¿Por qué Decimal ('0')> 9999.0 es verdadero en Python?
- 4. ¿Por qué tratar 0 como verdadero en Ruby?
- 5. ¿Por qué {} + [] devuelve 0 en Javascript?
- 6. ¿Por qué la alerta (!! "0") y la alerta (falsa == "0") salen verdaderas en JavaScript
- 7. Javascript VERDADERO y "verdadero" ¿por qué alguien usa cadena en lugar de booleano?
- 8. ¿Por qué es (Infinity | 0) === 0?
- 9. ¿Por qué falla Convert.ToBoolean ("0")?
- 10. ¿Por qué esta expresión devuelve verdadero?
- 11. 0 en [1, 2] == cierto, ¿por qué?
- 12. SecurityElement.IsValidText devuelve verdadero en "&" ... ¿por qué?
- 13. ¿Qué significa! 1 y! 0 en Javascript?
- 14. ¿Por qué javascript: void (0) se considera dañino?
- 15. Javascript interruptor (verdadero)
- 16. ¿Por qué (1 en [1,0] == Verdadero) evaluar a Falso?
- 17. ReferenceEquals ¿Por qué (S1, S2) devuelve verdadero
- 18. ¿Por qué .find() siempre devuelve verdadero?
- 19. ¿Por qué "abcd" .StartsWith ("") devuelve verdadero?
- 20. ¿Por qué == verdadero para algunos objetos enteros?
- 21. ¿Por qué ~ 0 es -1?
- 22. ¿Qué es! 0 en C?
- 23. ¿Por qué `null> = 0 && null <= 0` pero no` null == 0`?
- 24. ¿Por qué "int [] es uint [] == verdadero" en C#
- 25. ¿Por qué verdadero/falso está en mayúscula en Python?
- 26. Javascript regex devuelve verdadero ... luego falso ... luego verdadero ... etc.
- 27. ¿Por qué Javascript O devuelve un valor que no sea verdadero/falso?
- 28. ¿Por qué el resultado de bool (verdadero) && string es una cadena en javascript?
- 29. ¿Por qué 5> 4> 3! = (5> 4 && 4> 3) verdadero en Javascript?
- 30. ¿Por qué un C++ bool var es verdadero por defecto?
¿Quiere decir 0 El "fundido" en falso "" es fundido en falso y el cheque es falso == false => true –
Para PHP, consulte http: // php. net/manual/es/types.comparisons.php – apscience
Creo que es porque Javascript coacciona automágicamente cadenas y números en algunos contextos, el operador == es uno de esos contextos, y "" coacciona a 0. – millimoose