Secondo this table in the ECMAScript standard, valori di stringa che hanno lunghezza 0 dovrebbe essere valutato come boolean false
.Perché alcune stringhe non vuote restituiscono "false" in JavaScript?
Come mai, allora, queste dichiarazioni valutano a true
?
"\t" == false
" " == false
"\n" == false
" " == false
Tutte quelle stringhe avere una lunghezza maggiore di 0. Ad esempio:
Pur comprendendo che "0"
viene valutato come false
perché può essere costretto ad un numerica 0
, posso' t spiegare perché queste stringhe sono false. Cosa sta succedendo?
(Ovviamente posso usare ===
per un confronto rigoroso, ma in questo caso nel mio codice, ho bisogno del confronto sciolto, ma non mi aspettavo una stringa non vuota da considerarsi Falsey.)
In quale browser/ambiente stai vedendo questo comportamento? – iamnotmaynard
probabilmente duplicati con questa pagina di StackOverflow: http: //stackoverflow.com/questions/5634372/why-is-t-n-false-in-javascript – Reza
@vagueness Sì, più o meno. Sfortunatamente non si è presentato nelle mie ricerche. – Matt