Цитата:
|
Да, вот ваша писулька :) http://es5.javascript.ru/x11.html#x11.11
Семантика, вычисление LogicalORExpression : LogicalORExpression || LogicalANDExpression, шаг 5. |
Цитата:
А во вторых скажу сразу что Опера лучше других браузеров поддерживает ECMAScript, советую провести тесты. Хотя тут: http://test262.ecmascript.org/ хотя я и не буду утверждать того что опера права, но и пока четких слов не увижу по вычислению выражений в скобках, я буду нейтрален, и к опере и к другим. |
Цитата:
Цитата:
|
Причина этих разногласий между браузерами в вычислении оператора ||.
Выражение false || foo.bar в Опере возвращает значение Reference с базой foo и именем "bar", в остальных браузерах - функцию foo.bar. Поэтому при вызове результата этого выражения как функции в Опере значение foo передаётся в качестве аргумента this, а в других браузерах - глобальный объект (или undefined в строгом режиме). Та же особенность Оперы проявляется в следующем коде: var a=1; (0||a)=2; // во всех браузерах, кроме Оперы что-то типа ReferenceError: invalid assignment left-hand side alert(a); // в Опере выдаёт 2 |
oneguy,
ясно, поинтересуюсь на эту тему потом. |
Часовой пояс GMT +3, время: 12:20. |