Поскольку существует разница между преобразованием foo
в логическое значение (которое работает для массива) и сравнением foo
в true
.
В последнем случае это сравнение1006 * без преобразования, а foo
явно не то же самое, что true
.Обратите внимание, что преобразование все же происходит: foo == true
- это false
, который в конечном итоге "конвертируется" в false
для if
.:)