Парсер синтаксиса является частью движка Javascript. Он считывает ваш код символ за символом, сообщает, что делает ваш код, и проверяет правильность грамматики.
Вы можете рассматривать синтаксический анализатор как интерпретатор между вашим кодом и компьютером. Он переводит ваш код в машиночитаемый код. Javascript гибкий и отказоустойчивый. Это означает, что синтаксический анализатор или механизм javascript работают разумно и стараются изо всех сил угадывать и понимать, что вы хотите. Иногда он делает то, что вы ожидаете, иногда нет.
Javascript известен своей отказоустойчивостью в отличие от языков статической типизации, таких как C # и Java. Вот некоторые примеры:
1. Подъем - можно использовать переменную перед ее объявлением.
2. В глобальной среде вы можете использовать переменную, даже не объявляя ее.
3. Вы можете объединить строку с числом: 1 + ‘2’.
4. Вы можете использовать оператор равенства для сравнения объекта с примитивом: Number (2) == 2
5. Вы можете вызывать функцию и не передавать никаких параметров.
и более …
C # или Java не любят все эти дикие вещи, описанные выше. Однако в Javascript вы как бы живете в более свободном мире с меньшим количеством полицейских, проверяющих легитимность вашего кода.
Однако иногда синтаксический анализатор заходит слишком далеко и делает то, что вам изначально не нужно. Вот один из самых известных - автоматическая вставка точки с запятой.
В приведенном ниже коде ключевое слово «return» занимает всю строку. Javascript не поднимает красный флаг. Вместо этого он автоматически вставляет ‘; ‘После ключевого слова‘ return ’. Когда функция вызывается, в качестве результата возвращается undefined.
Для хорошей практики вы всегда должны помнить, что ключевое слово «return» и возвращаемое значение должны находиться в одной строке.
В заключение, наш код выполняется не напрямую компьютером, а через движок Javascript. Механизм Javascript устанавливает контекст выполнения и интерпретирует наш код с его наилучшим пониманием и делает то, о чем мы можем знать или не знать.