- Язык для написания динамических сценариев, выполняемых на стороне клиента - Объектно-ориентированный скриптовый язык программирования - Динамическая типизация - Слабая типизация - Автоматическое управление памятью - Прототипное программирование - Функции как объекты первого класса ## Особенности синтаксиса - Все идентификаторы регистрозависимы - В названиях переменных можно использовать буквы, подчеркивание, символ доллара, арабские цифры - Названия переменных не могут начинаться с цифры - Комментарии как в джаве ## Структура языка - Ядро ([[ECMAScript]] - спецификация языка) - Объектная модель браузера ([[BOM]]) - Объектная модель документа ([[DOM]]) ## Внешнее подключение к HTML #### Через `head` Нужен атрибут `defer` - чтобы скачивать скрипт в фоновом режиме и пользователь не видел белый экран (DOM строится сверху вниз) ```HTML ...
... ``` #### Через `body` DOM создается сверху вниз, поэтому указываем в самом низу ```HTML ... ... ``` ## Внутренний скрипт ```HTML