логические операторы
Доброго времени суток. Есть пара вопросов по логическому оператору &&.
В одной книге по JS прочитал, что при если false && stop() в этом выражении первый аргумент является false, null или undefine, то срабатывает второй оператор, т.е функция stop(). А здесь на сайте в разделе "Логические операторы" написано, что это выражение вернет первый не верный операнд. Подскажите чего я не понимаю? |
В больштнстве языков такая конструкция вернет false всегда, согласно правилам матлогики. Ни к чему проверять второе условие, если первое всегда ложно... их произведение всегда ложь.
ЗЫ. Можете поэксперементировать ;) <script type='text/javascript'> alert(false && function(){return true;}) //вернет false alert(null && function(){return true;}) //вернет null alert(b && function(){return true;}) //ничего не вернет </script> |
alert(b && function(){return true;}) //ничего не вернет а почему в этом примере ничего не вернет? |
Цитата:
false && function(){alert('O_o'); return true}(); alert('Ничего не произошло'); |
т.е получается, что если если первый аргумент false - то он и возвращается, а если оба true, то возвращается последний ?
|
Цитата:
Цитата:
Цитата:
if(false && true){} пройдет? |
Цитата:
Произведение ничего на что-то дает ничего. Значит функция вернет ничего) |
Цитата:
|
:) Я предложил на первом шаге поэкперементировать... В результате эксперимента выдаст ошибку ;)
|
просто интересно
Сей пост дернул за одну мысль.
condition1 && (action1() || 1)//предохраняем от "лжи" ||condition2 &&( subcondition2_1 && (action2_1() || 1) || subcondition2_2 && (action2_2() || 1) )|| condition3 && action3() ||//пусть action3 всегда вернет true action4() Несмотря на некую нездоровость, такое ветвление работает, и были упразднены слова switch, case, if, else. Идея не нова, и, может быть, кто-то здесь так пишет? |
Часовой пояс GMT +3, время: 14:26. |