Files
obsidian/Веб/Фронтенд/JavaScript.md
T
roma-dxunvrs 0e6e583e6d
deploy / Pull and Restart (push) Successful in 17s
refactor: wiki links -> md links
2026-09-22 08:52:23 +03:00

52 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- Язык для написания динамических сценариев, выполняемых на стороне клиента
- Объектно-ориентированный скриптовый язык программирования
- Динамическая типизация
- Слабая типизация
- Автоматическое управление памятью
- Прототипное программирование
- Функции как объекты первого класса
## Особенности синтаксиса
- Все идентификаторы регистрозависимы
- В названиях переменных можно использовать буквы, подчеркивание, символ доллара, арабские цифры
- Названия переменных не могут начинаться с цифры
- Комментарии как в джаве
## Структура языка
- Ядро ([ECMAScript](ECMAScript.md) - спецификация языка)
- Объектная модель браузера ([BOM](BOM.md))
- Объектная модель документа ([DOM](DOM.md))
## Внешнее подключение к HTML
#### Через `head`
Нужен атрибут `defer` - чтобы скачивать скрипт в фоновом режиме и пользователь не видел белый экран (DOM строится сверху вниз)
```HTML
...
<head>
<script src="main.js" defer></script>
</head>
...
```
#### Через `body`
DOM создается сверху вниз, поэтому указываем в самом низу
```HTML
...
<body>
...
<script scr="main.js"></script>
</body>
```
## Внутренний скрипт
```HTML
<body>
<h1>Тест</h1>
<script>
// Чистый JS код прямо в HTML:
const title = document.querySelector('h1');
console.log("Заголовок найден:", title.textContent);
</script>
</body>
```
## В атрибутах
> [!warning] Антипаттерн
```HTML
<button onclick="alert('Привет!')">Нажми меня</button>
```