You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Смотрю низ http://learn.javascript.ru/object-conversion . Там, где написано "Заметим, для полноты картины, что некоторые тесты знаний в интернет предлагают вопросы типа: {}[0] // чему равно?" и так далее. Так вот, с точки зрения "настоящего Javascript", описано в ECMA spec, и реализованного в браузерах при выполнении ими СКРИПТОВ, вы написали всё верно. Надеюсь, что ваши тесты на http://learn.javascript.ru/quiz тоже правильные. Но вот при запуске этих примеров в консолях браузеров эти самые консоли иногда ведут себя не как "настоящий js", а применяют специальные хаки, чтобы {} в начале строки воспринималось как пустой объект.
В частности, консоль FF (Firefox ESR 52.2.0 на Debian) в ответ на {} + {} выдаёт NaN (первый {} воспринимается как блок кода), как и полагается по ECMA spec, как и написано у вас, и как и реализовано во всех браузерах при обработке скриптов. Но вот консоль Chromium (59.0.3071.86 на Debian) выдаёт "[object Object][object Object]". Node.js v7.10.0 выдаёт почти такой же ответ: '[object Object][object Object]'.
Так вот, хорошо бы тут предупредить об этом читателей. Мол, на консоли браузеров в этом вопросе полагаться нельзя. Как минимум (если хочется воспользоваться консолью) нужно принудить код выполняться как выражение (запихнув в круглые скобки), ну или как statement (запихнув в тело функции)
The text was updated successfully, but these errors were encountered:
Смотрю низ http://learn.javascript.ru/object-conversion . Там, где написано "Заметим, для полноты картины, что некоторые тесты знаний в интернет предлагают вопросы типа: {}[0] // чему равно?" и так далее. Так вот, с точки зрения "настоящего Javascript", описано в ECMA spec, и реализованного в браузерах при выполнении ими СКРИПТОВ, вы написали всё верно. Надеюсь, что ваши тесты на http://learn.javascript.ru/quiz тоже правильные. Но вот при запуске этих примеров в консолях браузеров эти самые консоли иногда ведут себя не как "настоящий js", а применяют специальные хаки, чтобы {} в начале строки воспринималось как пустой объект.
В частности, консоль FF (Firefox ESR 52.2.0 на Debian) в ответ на {} + {} выдаёт NaN (первый {} воспринимается как блок кода), как и полагается по ECMA spec, как и написано у вас, и как и реализовано во всех браузерах при обработке скриптов. Но вот консоль Chromium (59.0.3071.86 на Debian) выдаёт "[object Object][object Object]". Node.js v7.10.0 выдаёт почти такой же ответ: '[object Object][object Object]'.
Так вот, хорошо бы тут предупредить об этом читателей. Мол, на консоли браузеров в этом вопросе полагаться нельзя. Как минимум (если хочется воспользоваться консолью) нужно принудить код выполняться как выражение (запихнув в круглые скобки), ну или как statement (запихнув в тело функции)
The text was updated successfully, but these errors were encountered: