[] == false даст true;
{} == false даст false;
Почему
if ({} && []) {
alert( "Все объекты - true!" ); // alert сработает
}
или даже
if ([]) {
alert( "true!" ); // alert сработает
}
даст true?
[] == false даст true;
{} == false даст false;
Почему
if ({} && []) {
alert( "Все объекты - true!" ); // alert сработает
}
или даже
if ([]) {
alert( "true!" ); // alert сработает
}
даст true?
Преобразование к true/false происходит в логическом контексте, таком как if(value), и при применении логических операторов.
[] и {} - объекты. А объекты в этом контексте всегда дают true.
Больше инфы здесь.