Це тому, що усі об’єкти, включно з логічним об’єктом, обернене значення якого дорівнює false, є правдивими та оцінюються як true у таких місцях, як умовні оператори.
Якщо Type(x) – String, а Type(y) – Number, повертає результат порівняння ToNumber(x) == y. у нашому випадку Type(x) — це рядок ('true'), а Type(y) — це число (1), як ми обговорювали вище. що є хибним.
false і false є false логічно. Результат виразу з використанням оператора && визначається на основі цих правил: якщо ліва частина виразу має значення "falsey", вираз повертатиме ліву частину. Якщо ліва сторона виразу «правдива», вираз поверне праву частину.
Пам'ятайте, що логічні змінні мають значення за замовчуванням "false" якщо вони не ініціалізовані або не мають значення. Неправильні або несподівані результати можуть бути отримані, якщо прийняти «істинне» значення для змінної в програмі. Неадекватне присвоєння значення логічній змінній є подібним недоглядом.
Як ви можете бачити з таблиці істинності, тільки якщо обидві умови істинні, кон’юнкція буде прирівнюватися до істинної. Якщо одна чи інша або обидві умови в кон’юнкції хибні, тоді кон’юнкція прирівнюється до хибних.