Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2016, 12:37
Новичок на форуме
Отправить личное сообщение для Interloper Посмотреть профиль Найти все сообщения от Interloper
 
Регистрация: 26.03.2016
Сообщений: 2

Различная реакция на переопределение идентификатора в браузерах 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
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2016, 12:50
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,661

Interloper, разные движки, разные браузеры, может быть разная реакция как не странно.
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2016, 14:23
Новичок на форуме
Отправить личное сообщение для Interloper Посмотреть профиль Найти все сообщения от Interloper
 
Регистрация: 26.03.2016
Сообщений: 2

Сообщение от Rise Посмотреть сообщение
Interloper, разные движки, разные браузеры, может быть разная реакция как не странно.
Меня интересуют конкретно технические детали в данном случае.
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2016, 08:22
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,661

Interloper, какие технические детали вы ожидаете код на C++?
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2016, 13:39
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Так происходит, потому что JS Bin оборачивает код в try-catch, function declaration оказывается внутри блока и всплывают различия в реализации.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Firefox не работает скрипт в отличии от Opera, Chrome, IE yanagas Javascript под браузер 2 06.08.2013 01:32
Проблемы совместимости при использовании ExtJS в браузерах IE & Opera Allan Stark ExtJS 4 18.09.2012 10:28
Скрипт перестал работать в новых версиях firefox, Opera и Chrome, а в IE работает polbear Javascript под браузер 3 30.06.2011 09:34
тег <audio> в Opera, Chrome, Firefox Magneto Javascript под браузер 12 25.11.2010 15:12
Проблема с меню не корректно отображается в браузерах отличных от IE (т.е. FF Opera) 3xv Элементы интерфейса 2 16.04.2009 19:51