Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   [] == true - это ложь, но функция if([]){} выполняется (https://javascript.ru/forum/misc/82881-%5B%5D-%3D%3D-true-ehto-lozh-no-funkciya-if-%5B%5D-%7B%7D-vypolnyaetsya.html)

Oleg_Lugaro 24.07.2021 14:26

[] == true - это ложь, но функция if([]){} выполняется
 
https://clip2net.com/clip/m0/47f7b-c....png?nocache=1

Спасибо кто объяснит

Aetae 24.07.2021 14:38

== для сравнения сначала приводит типы к общему знаменателю с обоих сторон.
Не обязательно именно к Boolean.
Не обязательно с первого раза.
Там длинный список правил и очерёдности.

if же приводит аргумент конкретно и сразу к Boolean:
Boolean([]) === true // true


P.S. В современном js никто не использует ==, как раз чтобы не париться по этому поводу. Используй === и явные приведения, и ни о чём не волнуйся.)

ksa 25.07.2021 10:32

Цитата:

Сообщение от Oleg_Lugaro
но функция if([]){} выполняется

Потому как пустой массив не является "фолси"....
https://askdev.ru/q/vse-znacheniya-f...ascript-11477/


Часовой пояс GMT +3, время: 11:01.