Короткий ответ: каждый браузер пишет свой собственный интерпретатор для JS
Длинный ответ
Чтобы понять, почему язык программирования функционирует по-разному, вы должны понимать, что происходитна язык программирования при исполнении.Во-первых, существует два типа языков, которые интерпретируются и компилируются.Скомпилированные языки превращаются из читаемого человеком кода в машинный код перед выполнением и распространяются в виде двоичного файла.
Интерпретируемые языки компилируются на лету, одним из таких языков является JS.Что значит собирать язык на лету?Ну, компьютер не может понимать ничего, кроме 1 и 0, и поэтому все языки более высокого уровня должны быть разбиты на инструкции, а затем двоичные.Когда что-то компилируется на лету, оно компилирует строку, затем запускает ее, а затем компилирует следующую.(конечно, есть сложности, но на самом деле этого не хватает)
Поскольку у JS действительно никогда не было автономного переводчика до недавнего времени, и браузер является основной целью JS, каждая компания должна была написать свой собственный интерпретатор, которыйпошел бы в их браузер.Microsoft, Mozilla, Netscape ... Каждый должен был подумать о том, как можно обрабатывать определенные вещи, а затем выполнить их.
Из-за того, что сначала происходят две вещи, вы никогда не получите одну и ту же вещь, если два человекаработаю над этим.Подумайте о том, когда вы начинаете знакомство с курсом Comp Sci, каждый должен создать приложение для калькулятора, но у каждого свой подход.Это происходит постоянно с js и заставляет некоторые браузеры сканировать, в то время как другие летают.
Во-вторых, компании настроены по-своему, у них слишком много времени и энергии, вложенных в их интерпретатора, и они нехочу начать заново при модификации работает и дешевле.Это означает, что различия, которые возникали в прошлом, когда JS использовался реже и не настолько критичны для веб-разработки, останутся только потому, что действительно трудно развернуть целую новую версию IE с webkit, когда она сосредоточена вокруг собственного интерпретатора.в течение многих лет.