Зачем нужен префикс 'javascript:' в обработчиках событий?

Недавно я начал глубже изучать JavaScript и заметил интересную вещь. В некоторых примерах кода я видел, что перед функциями в обработчиках событий HTML-элементов стоит префикс javascript:. Меня это озадачило.

Например, есть два варианта записи:

<button onchange="javascript: myFunction(this)">Кнопка 1</button>
<button onchange="myFunction(this)">Кнопка 2</button>

Есть ли разница между этими двумя вариантами? Зачем вообще нужен этот префикс javascript:? Может быть, это устаревший синтаксис или у него есть какое-то особое применение?

Буду благодарен, если кто-нибудь объяснит, в чем тут дело. Спасибо!

да, префикс ‘javascript:’ это пережиток прошлого. сам недавно с этим столкнулся, когда переписывал старый код. сейчас такое писать не надо, браузеры и так понимают что это джаваскрипт. вообще советую вынести обработчики событий из html в отдельный js-файл, так код будет намного чище и удобнее поддерживать. а еще можно использовать arrow-функции для краткости, мне они очень нравятся. ты уже пробовал такой подход?

Префикс ‘javascript:’ - это рудимент старых версий. Сейчас он не нужен и даже может вызвать проблемы. Лучше его не использовать вообще. Современные браузеры и так понимают, что в атрибутах on* должен быть JS-код. Вместо инлайн-обработчиков рекомендую добавлять слушатели событий через addEventListener - так код будет чище и гибче. А для совсем старых браузеров можно использовать полифилы.

На самом деле, префикс ‘javascript:’ устарел и не обязателен: современные браузеры сами понимают, что это JS. Я предпочитаю назначать обработчики через addEventListener, так код чище. А ты как считаешь – есть ли в этом какие-то преимущества в специфических случаях?