логические операторы
Доброго времени суток. Есть пара вопросов по логическому оператору &&.
В одной книге по 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, время: 17:33. |