Различная реакция на переопределение идентификатора в браузерах Opera и Firefox
Как объяснить различную реакцию на выполнение следующего кода в разных браузерах?
var func = function() { console.log('1'); }; function func() { console.log('2'); } func(); При выполнении в Opera 36.0.2130.32 выдается ошибка: "SyntaxError: Identifier 'func' has already been declared at https://static.jsbin.com/js/prod/run...min.js:1:13891 at https://static.jsbin.com/js/prod/runner-3.35.11.min.js:1:10820" При выполнении в Firefox 44.0.2 ошибка не выдается, и в консоль выводится значение "2". Вот ссылка на jsbin: https://jsbin.com/hijobojawe/1/edit?js,console,output |
Цитата:
|
Так происходит, потому что JS Bin оборачивает код в try-catch, function declaration оказывается внутри блока и всплывают различия в реализации.
|
Часовой пояс GMT +3, время: 05:02. |