А вот логические операторы движок JS «оптимизирует».
- вот он ответ на мой вопрос, спасибо)
Т.е. я так понимаю интерпретатор в обычном случае, сначала идет слева направо от операнда к оператору, но выполняет вычисления с операторами после, а в случае с && он здесь и останавливается, т.к. первый операнд по сути false?
И еще к вам вопрос. Вы пишите:
c myalert() работает только ассоциативность и приоритет арифметических операторов
В каком месте здесь работает ассоциативность, мне казалось это про операторы с одинаковым приоритетом?
А причем здесь, что они возвращают? Я разве об этом?
Функция myalert() в данном случае, просто для того, чтобы смогли произойти вычисления. Можно и так: alert(1) + alert(2) * alert(3)
Попробую попонятнее:
Почему во втором случае вычисляется myalert(1), затем myalert(2), затем myalert(3), затем *, а затем +,
а в первом alert(1), alert(2), затем &&, а потом ||, а до alert(3) не доходит?
Т.е. я так понимаю интерпретатор в обычном случае, сначала идет слева направо от операнда к оператору, но выполняет вычисления с операторами после, а в случае с && он здесь и останавливается, т.к. первый операнд по сути false?
И еще к вам вопрос. Вы пишите:
В каком месте здесь работает ассоциативность, мне казалось это про операторы с одинаковым приоритетом?