Справочник по JavaScript
========================

Этот раздел MDN служит хранилищем фактов о языке JavaScript. Весь язык подробно описан здесь. При написании кода JavaScript вы будете часто ссылаться на эти страницы (отсюда и название "Справочник по JavaScript").

Язык JavaScript предназначен для использования в какой-либо более крупной среде, будь то браузер, серверные скрипты или что-то подобное. По большей части, этот справочник пытается быть независимым от среды и не ориентирован на среду веб-браузера.

Если вы новичок в JavaScript, начните с этого раздела. Как только вы твердо усвоите основы, вы можете использовать текущий справочник, чтобы получить более подробную информацию об отдельных объектах и языковых конструкциях.

Встроенные модули
-----------------

Эта глава описывает все стандартные встроенные объекты JavaScript вместе с их методами и свойствами.

### Значения свойств

* `globalThis`
* `Infinity`
* `NaN`
* `undefined`
### Свойства функции

* `eval()`
* `isFinite()`
* `isNaN()`
* `parseFloat()`
* `parseInt()`
* `decodeURI()`
* `decodeURIComponent()`
* `encodeURI()`
* `encodeURIComponent()`
* `escape()` 
Устарело
* `unescape()` 
Устарело
### Фундаментальные объекты

* `Object`
* `Function`
* `Boolean`
* `Symbol`
### Объекты ошибок

* `Error`
* `AggregateError` (en-US)
* `EvalError`
* `RangeError`
* `ReferenceError`
* `SyntaxError`
* `TypeError`
* `URIError`
* `InternalError` 
Non-standard
### Числа и даты

* `Number`
* `BigInt`
* `Math`
* `Date`
### Обработка текста

* `String`
* `RegExp`
### Индексированные коллекции

* `Array`
* `Int8Array`
* `Uint8Array` (en-US)
* `Uint8ClampedArray`
* `Int16Array` (en-US)
* `Uint16Array` (en-US)
* `Int32Array`
* `Uint32Array` (en-US)
* `BigInt64Array` (en-US)
* `BigUint64Array` (en-US)
* `Float32Array`
* `Float64Array`
### Коллекции с ключами

* `Map` (en-US)
* `Set`
* `WeakMap`
* `WeakSet`
### Структурированные данных

* `ArrayBuffer`
* `SharedArrayBuffer`
* `DataView`
* `Atomics`
* `JSON`
### Управление памятью

* `WeakRef` (en-US)
* `FinalizationRegistry` (en-US)
### Абстракционные объекты управления

* `Promise`
* `GeneratorFunction`
* `AsyncGeneratorFunction` (en-US)
* `Generator`
* `AsyncGenerator` (en-US)
* `AsyncFunction`
### Объекты отражения

* `Reflect`
* `Proxy`
### Интернационализация

* `Intl`
* `Intl.Collator`
* `Intl.DateTimeFormat`
* `Intl.DisplayNames` (en-US)
* `Intl.ListFormat`
* `Intl.Locale` (en-US)
* `Intl.NumberFormat`
* `Intl.PluralRules` (en-US)
* `Intl.RelativeTimeFormat` (en-US)
* `Intl.Segmenter` (en-US)
Инструкции
----------

Эта глава описывает все инструкции и объявления JavaScript.

### Управление потоком

* `return`
* `break`
* `continue`
* `throw`
* `if...else`
* `switch`
* `try...catch`
### Объявление переменных

* `var`
* `let`
* `const`
### Функции и классы

* `function`
* `function*`
* `async function`
* `async function*` (en-US)
* `class`
### Итерации

* `do...while`
* `for`
* `for...in`
* `for...of`
* `for await...of`
* `while`
### Другое

* Empty
* Block
* Expression statement (en-US)
* `debugger`
* `export`
* `import`
* label
* `with` 
Устарело
Выражения и операторы
---------------------

JavaScript expressions and operators.

### Основные выражения

* `this`
* Литералы
* `[]`
* `{}`
* `function`
* `class`
* `function*`
* `async function`
* `async function*` (en-US)
* `/abc/i`
* ``string``
* `( )`
### Второстепенные выражения

* Property accessors
* `?.`
* `new`
* `new.target`
* `import.meta`
* `super`
* `import()` (en-US)
### Инкремент и дикремент

* `A++` (en-US)
* `A--`
* `++A` (en-US)
* `--A`
### Унарные оператоты

* `delete`
* `void`
* `typeof`
* `+` (en-US)
* `-` (en-US)
* `~` (en-US)
* `!`
* `await`
### Арифмитические оператоты

* `**` (en-US)
* `*` (en-US)
* `/` (en-US)
* `%` (en-US)
* `+`
* `-` (en-US)
### Реляционные операторы

* `<` (en-US) (Меньше чем)
* `>` (en-US) (Больше чем)
* `<=` (en-US)
* `>=` (en-US)
* `instanceof`
* `in`
### Оператоы сравнения

* `==` (en-US)
* `!=` (en-US)
* `===` (en-US)
* `!==` (en-US)
### Операторы побитового сдвига

* `<<` (en-US)
* `>>` (en-US)
* `>>>` (en-US)
### Двоичные побитовые операторы

* `&`
* `|` (en-US)
* `^` (en-US)
### Двоичные логические операторы

* `&&`
* `||`
* `??`
### Условный (тернарный) оператор

* `(condition ? ifTrue : ifFalse)`
### Операторы присваивания

* `=`
* `*=` (en-US)
* `/=` (en-US)
* `%=` (en-US)
* `+=`
* `-=` (en-US)
* `<<=` (en-US)
* `>>=` (en-US)
* `>>>=` (en-US)
* `&=` (en-US)
* `^=` (en-US)
* `|=` (en-US)
* `**=` (en-US)
* `&&=`
* `||=`
* `??=`
* `[a, b] = arr`, `{ a, b } = obj`
### Операторы доходности

* `yield`
* `yield*`
### Spread синтаксис

* `...obj`
### Оператор запятой

* `,`
Функции
-------

JavaScript функции.

* Стрелочные функции
* Стандартные параметры
* Остальные параметры
* `arguments`
* Определения методов
* getter
* setter
Классы
------

JavaScript классы.

* `constructor`
* `extends`
* Особенности приватных классов
* Поля открытого класса
* `static`
* Статические блоки инициализации (en-US)
Дополнительные справочные страницы
----------------------------------

* Lexical grammar
* Типы и структуры данных
* Протоколы итерации
* Конечные запятые
* Ошибки
* Strict mode
* Deprecated features