Эти два оператора часто используются, и они всегда запутаны и записаны. Полем Полем
a () && b (): если истина возвращается после выполнения (), то B () выполняется, и значение b возвращается; Если false возвращается после выполнения (), все выражение возвращает значение a (), а b () не выполняется;
a () || b (): если истина возвращается после выполнения (), все выражение возвращает значение a (), а b () не выполняет; Если false возвращается после выполнения (), b () выполняется и возвращается значение b ();
&& Приоритет выше ||
Код выглядит следующим образом
Alert ((1 && 3 || 0) && 4); // Результат 4 ①
оповещение (1 && 3 || 0 && 4); // результат 3 ②
Alert (0 && 3 || 1 && 4); // Результат 4 ③
анализировать
Оператор ①: 1 && 3 вернуть 3 => 3 || 0 вернуть 3 => 3 && 4 возврат 4
Оператор ②: сначала выполнить 1 && 3 и вернуть 3, затем выполнить 0 && 4 и вернуть 0 и, наконец, выполнить сравнение результатов 3 || 0 и вернуть 3
Оператор ③: сначала выполнить 0 && 3 и вернуть 0, затем выполнить 1 && 4 и вернуть 4 и, наконец, выполнить сравнение результатов 0 || 4 и вернуть 4
ПРИМЕЧАНИЕ. Целы, которые не являются нулевыми, являются истинными, неопределенные, нулевые и пустые струны являются ложными.