recursal/MDN huggingface dataset:
GeneratorFunction
=================

Объект **`GeneratorFunction`** предоставляет методы для работы с функциями-генераторами. В JavaScript каждая функция-генератор фактически является объектом `GeneratorFunction`.

Обратите внимание, `GeneratorFunction` *не* является глобальным объектом. Он может быть получен следующим образом:


```js
const GeneratorFunction = function\* () {}.constructor;
```


`GeneratorFunction` является подклассом `Function`.

Интерактивный пример
--------------------

Конструктор
-----------

`GeneratorFunction()` (en-US)

Создаёт новый объект `GeneratorFunction`.

Свойства экземпляра
-------------------

*Также наследует свойства своего родителя `Function`*.

Эти свойства определены в `GeneratorFunction.prototype` и есть у всех экземпляров `GeneratorFunction`.

`GeneratorFunction.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `GeneratorFunction` начальным значением является конструктор `GeneratorFunction` (en-US).

`GeneratorFunction.prototype.prototype`

Все функции-генераторы имеют доступ к общему свойству `prototype` (en-US), значением которого является `Generator.prototype`. Каждый экземпляр функции-генератора также имеет собственное свойство `prototype`. При вызове функции-генератора возвращается объект генератора, наследуемый от свойства `prototype` функции-генератора, которая в свою очередь наследуется от `GeneratorFunction.prototype.prototype`.

`GeneratorFunction.prototype[@@toStringTag]`

Начальным значением свойства `@@toStringTag` является строка `"GeneratorFunction"`. Это свойство используется в `Object.prototype.toString()`.

Методы экземпляра
-----------------

*Наследует методы своего родителя `Function`*.

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-generatorfunction-objects |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `function*`
* выражение `function*`
* `Function`
* `AsyncFunction`
* `AsyncGeneratorFunction` (en-US)
* Functions
isFinite()
==========

Глобальная **`isFinite()`** функция определяет, является ли переданное значение конечным числом. Если необходимо, параметр сначала преобразуется в число.

Интерактивный пример
--------------------

Синтаксис
---------
```

isFinite(testValue)
```

### Параметры

`testValue`

Аргумент для проверки, является ли он конечным числом.

Описание
--------

`isFinite` это функция верхнего уровня и она не связана ни с одним объектом.

Вы можете использовать эту функцию там, где требуется определить, является ли аргумент конечным числом. Функция `isFinite` исследует число в своём параметре. Если аргумент является NaN, положительной или отрицательной бесконечностью, метод вернёт `false`; иначе возвращается `true`.

Примеры
-------


```js
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false

isFinite(0); // true
isFinite(2e64); // true

isFinite("0"); // true, но было бы false если использовать
// более надёжный вариант Number.isFinite("0")
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-isfinite-number |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.isFinite()`
* `Number.NaN()`
* `Number.POSITIVE_INFINITY`
* `Number.NEGATIVE_INFINITY`
AsyncFunction
=============

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.

* Learn more
* See full compatibility
* Report feedback
Объект **`AsyncFunction`** предоставляет методы для асинхронных функций. В JavaScript каждая асинхронная функция фактически является объектом `AsyncFunction`.

Обратите внимание, что `AsyncFunction` *не* является глобальным объектом. Его можно получить с помощью следующего кода:


```js
const AsyncFunction = async function () {}.constructor;
```


`AsyncFunction` является подклассом `Function`.

Конструктор
-----------

`AsyncFunction()` (en-US)

Создаёт новый объект `AsyncFunction`.

Свойства экземпляра
-------------------

*Также наследует свойства своего родителя `Function`*.

Эти свойства определены в `AsyncFunction.prototype` и есть у всех экземпляров `AsyncFunction`.

`AsyncFunction.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `AsyncFunction` начальным значением является конструктор `AsyncFunction` (en-US).

`AsyncFunction.prototype[@@toStringTag]`

Начальным значением свойства `@@toStringTag` является строка `"AsyncFunction"`. Это свойство используется в `Object.prototype.toString()`.


**Примечание:** Экземпляры `AsyncFunction` не имею свойства `prototype` (en-US).

Методы экземпляра
-----------------

*Наследует методы своего родителя `Function`*.

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-async-function-objects |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `async function`
* Выражение `async function`
* `Function`
* `AsyncGeneratorFunction` (en-US)
* `GeneratorFunction`
* Functions
unescape()
==========

**Устарело:** Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.

Устаревший метод **`unescape(str)`** создаёт новую строку в которой шестнадцатеричная последовательность символов вида %xx заменяется эквивалентами из кодировки ASCII. Знаки, закодированные в формате %uxxxx (знаки Юникода), заменяются знаками Юникода в шестнадцатеричной кодировке xxxx.

Последовательность может быть результатом работы функции вроде `escape`. Т.к. `unescape` является устаревшей, используйте `decodeURI` или `decodeURIComponent` вместо неё.

**Примечание:** Не рекомендуется использовать `unescape` чтобы декодировать URI, используйте `decodeURI` вместо него.

Синтаксис
---------
```

unescape(str)
```

### Parameters

`str`

Строка которую необходимо преобразовать

Описание
--------

`Функция unescape` это свойство *глобального объекта*.

Примеры
-------


```js
unescape("abc123"); // "abc123"
unescape("%E4%F6%FC"); // "äöü"
unescape("%u0107"); // "ć"
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-unescape-string |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `decodeURI`
* `decodeURIComponent`
NaN
===

Сводка
------

Глобальное свойство **`NaN`** является значением, представляющим не-число (Not-A-Number).

| Атрибуты свойства `NaN` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Интерактивный пример
--------------------

Описание
--------

`NaN` является свойством *глобального объекта*.

Начальным значением `NaN` является Not-A-Number (не-число) — то же самое значение, что и у `Number.NaN`. В современных браузерах `NaN` является ненастраиваемым и незаписываемым свойством. Даже когда это не так, избегайте его переопределения.

В программах `NaN` используется довольно редко. Это возвращаемое значение в ситуациях, когда математические (`Math`) функции не срабатывают должным образом (например, при вызове `Math.sqrt(-1)`) или когда функция, пытающаяся считать число из строки, терпит неудачу по причине того, что в строке не число (`parseInt('blabla')`).

### Проверка на равенство `NaN`

`NaN` является неравным (посредством сравнения через `==`, `!=`, `===`, and `!==`) любому другому значению, включая другое значение NaN. Используйте `Number.isNaN()` или `isNaN()`, чтобы наиболее понятным образом определить является ли значение значением NaN. Или выполните само-сравнение: NaN, и только NaN, в результате такого сравнения будет неравным самому себе.


```js
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true

function valueIsNaN(v) {
  return v !== v;
}
valueIsNaN(1); // false
valueIsNaN(NaN); // true
valueIsNaN(Number.NaN); // true
```


Тем не менее, обратите внимание на разницу между функцией `isNaN()` и методом `Number.isNaN()`: первая вернёт `true`, если значение в настоящий момент является `NaN`, или если оно станет `NaN` после того, как преобразуется в число, в то время как последний вернёт `true`, только если текущим значением является `NaN`:


```js
isNaN("hello world"); // true
Number.isNaN("hello world"); // false
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-value-properties-of-the-global-object-nan |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.NaN`
* `Number.isNaN()`
* `isNaN()`
TypeError
=========

Объект **`TypeError`** представляет ошибку, возникающую, когда операцию невозможно выполнить, обычно (но не обязательно), когда значение не относится к ожидаемому типу.

`TypeError` может возникнуть в следующих случаях:

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

`TypeError` является сериализуемым объектом (en-US), поэтому он может быть клонирован с помощью `structuredClone()` (en-US) или передан между воркерами с использованием `postMessage()`.

`TypeError` является подклассом `Error`.

Конструктор
-----------

`TypeError()` (en-US)

Создаёт новый объект `TypeError`.

Свойства экземпляра
-------------------

*Также наследует свойства своего родителя `Error`*.

Эти свойства определены в `TypeError.prototype` и есть у всех экземпляров `TypeError`.

`TypeError.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `TypeError` начальным значением является конструктор `TypeError` (en-US).

`TypeError.prototype.name`

Представляет название типа ошибки. Начальным значением `TypeError.prototype.name` является `"TypeError"`.

Методы экземпляра
-----------------

*Наследует методы своего родителя `Error`*.

Примеры
-------

### Перехват `TypeError`


```js
try {
  null.f();
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "null has no properties"
  console.log(e.name); // "TypeError"
  console.log(e.stack); // Стек ошибок
}
```

### Создание `TypeError`


```js
try {
  throw new TypeError("Привет");
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Привет"
  console.log(e.name); // "TypeError"
  console.log(e.stack); // Стек ошибок
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-typeerror |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Error`
Infinity
========

Сводка
------

Глобальное свойство **`Infinity`** является числовым значением, представляющим бесконечность.

| Атрибуты свойства `Infinity` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Интерактивный пример
--------------------

Описание
--------

`Infinity` является свойством *глобального объекта*, то есть, это переменная в глобальной области видимости.

Начальным значением `Infinity` является `Number.POSITIVE_INFINITY`. Значение `Infinity` (положительная бесконечность) больше любого другого числа, включая саму положительную бесконечность. Это значение ведёт себя как математическая бесконечность; например, любое положительное число, умноженное на `Infinity` даёт `Infinity`, а любое число, делённое на `Infinity` даёт 0.

В спецификации ECMAScript 5 `Infinity` является свойством только для чтения (реализована в JavaScript 1.8.5 / Firefox 4).

Примеры
-------
```

console.log(Infinity          ); /* Infinity */
console.log(Infinity + 1      ); /* Infinity */
console.log(Math.pow(10, 1000)); /* Infinity */
console.log(Math.log(0)       ); /* -Infinity */
console.log(1 / Infinity      ); /* 0 */
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-value-properties-of-the-global-object-infinity |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.NEGATIVE_INFINITY`
* `Number.POSITIVE_INFINITY`
* `Number.isFinite`
URIError
========

Объект **`URIError`** представляет ошибку, возникающую при неправильном использовании глобальных функций обработки URI.

`URIError` является сериализуемым объектом (en-US), поэтому он может быть клонирован с помощью `structuredClone()` (en-US) или передан между воркерами с использованием `postMessage()`.

`URIError` является подклассом `Error`.

Конструктор
-----------

`URIError()` (en-US)

Создаёт новый объект `URIError`.

Свойства экземпляра
-------------------

*Также наследует свойства своего родителя `Error`*.

Эти свойства определены в `URIError.prototype` и есть у всех экземпляров `URIError`.

`URIError.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `URIError` начальным значением является конструктор `URIError` (en-US).

`URIError.prototype.name`

Представляет название типа ошибки. Начальным значением `URIError.prototype.name` является `"URIError"`.

Методы экземпляра
-----------------

*Наследует методы своего родителя `Error`*.

Примеры
-------

### Перехват `URIError`


```js
try {
  decodeURIComponent("%");
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message); // "malformed URI sequence"
  console.log(e.name); // "URIError"
  console.log(e.stack); // Стек ошибок
}
```

### Создание `URIError`


```js
try {
  throw new URIError("Привет");
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message); // "Привет"
  console.log(e.name); // "URIError"
  console.log(e.stack); // Стек ошибок
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-urierror |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Error`
* `decodeURI()`
* `decodeURIComponent()`
* `encodeURI()`
* `encodeURIComponent()`
encodeURI()
===========

Метод **encodeURI ()** кодирует универсальный идентификатор ресурса (URI), замещая некоторые символы на одну, две, три или четыре управляющие последовательности, представляющие UTF-8 кодировку символа (четыре управляющие последовательности будут использованы только для символов, состоящих из двух «суррогатных» символов).

Интерактивный пример
--------------------

Синтаксис
---------
```

encodeURI(URI)
```

### Параметры

`URI`

Полный URI (en-US).

### Возвращаемое значение

Новая строка, представляющая собой строку-параметр, закодированную в виде универсального идентификатора ресурса (URI).

Описание
--------

Предполагается, что URI является полным URI, поэтому метод не кодирует зарезервированные символы, имеющие особое значение в URI.

encodeURI заменяет все символы, **кроме** следующих с соответствующими UTF-8 управляющими последовательностями:

| Тип | Включения |
| --- | --- |
| Зарезервированные символы | `;` `,` `/` `?` `:` `@` `&` `=` `+` `$` |
| Неэкранируемые символы | латинские буквы, десятичные цифры, `-` `_` `.` `!` `~` `*` `'` `(` `)` |
| Score | `#` |

Заметим, что `encodeURI` сам по себе не может сформировать правильные HTTP GET и POST запросы, такие как XMLHTTPRequests, потому, что "&", "+", и "=" не закодированы, которые воспринимаются как специальные символы в GET и POST запросах. `encodeURIComponent`, однако, кодирует эти символы

Замечание: `URIError` будет брошена, если попытаться закодировать суррогат, который не является частью высоко-низкой пары, например:


```js
// низко-высокая пара - нормально
console.log(encodeURIComponent("\uD800\uDFFF"));

// один высокий суррогат бросит "URIError: malformed URI sequence"
console.log(encodeURIComponent("\uD800"));

// один низкий суррогат бросит "URIError: malformed URI sequence"
console.log(encodeURIComponent("\uDFFF"));
```


Также заметим, что следуя наиболее свежей RFC3986 для URL, которая делает квадратные скобки защищёнными (для IPv6) и таким образом не кодирует, когда формирование чего-либо, не являющегося частью URL (такое как домен), следующий сниппет поможет:


```js
function fixedEncodeURI(str) {
  return encodeURI(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
}
```

Спецификация
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-encodeuri-uri |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `decodeURI()`
* `encodeURIComponent()`
* `decodeURIComponent()`
* Base62x
ArrayBuffer
===========

Объект **`ArrayBuffer`** используется для работы с бинарными данными. Он представляет собой ссылку на поток "сырых" двоичных данных, однако работать с ними напрямую возможности не даёт. Вместо этого, вы можете создать типизированный массив или объект `DataView`, который можно использовать для чтения и записи данных в **`ArrayBuffer`**.

Синтаксис
---------
```

new ArrayBuffer(length)
```

### Параметры

`length`

Длина создаваемого буфера в байтах.

### Возвращаемое значение

Новый объект `ArrayBuffer` определённого размера. Изначально содержимое равно 0.

Описание
--------

Конструктор `ArrayBuffer` создаёт новый `ArrayBuffer` установленного в байтах размера.

### Создание буфера

* Из Base64 строки
* Из локального файла
Свойства
--------

`ArrayBuffer.length`

Длина конструктора `ArrayBuffer`, которая равна 1.

`ArrayBuffer.prototype` (en-US)

Позволяет расширить прототип всех `ArrayBuffer` объектов.

Методы
------

`ArrayBuffer.isView(arg)`

Возвращает `true` если `arg` – одно из представлений `ArrayBuffer`, например типизированный массив или `DataView`. Вернёт `false` в остальных случаях.

`ArrayBuffer.transfer(oldBuffer [, newByteLength])` (en-US) 
Экспериментальная возможность

Вернёт новый `ArrayBuffer`, контент которого будет взят из данных `oldBuffer`, а затем усечён или дополнен нулевыми значениями до `newByteLength`.

Пример
------

В этом примере мы создаём 8-байтный буфер с `Int32Array` представлением:


```js
var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);
```

Спецификация
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-arraybuffer-objects |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Также
-----

* JavaScript типизированные массивы
EvalError
=========

Объект **`EvalError`** представляет ошибку, возникающую в глобальной функции `eval()`. JavaScript больше не генерирует это исключение, однако объект `EvalError` остается для совместимости.

`EvalError` является сериализуемым объектом (en-US), поэтому он может быть клонирован с помощью `structuredClone()` (en-US) или передан между воркерами с использованием `postMessage()`.

`EvalError` является подклассом `Error`.

Конструктор
-----------

`EvalError()` (en-US)

Создаёт новый объект `EvalError`.

Свойства экземпляра
-------------------

*Также наследует свойства своего родителя `Error`*.

Эти свойства определены в `EvalError.prototype` и есть у всех экземпляров `EvalError`.

`EvalError.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `EvalError` начальным значением является конструктор `EvalError` (en-US).

`EvalError.prototype.name`

Представляет название типа ошибки. Начальным значением `EvalError.prototype.name` является `"EvalError"`.

Методы экземпляра
-----------------

*Наследует методы своего родителя `Error`*.

Примеры
-------

### Создание `EvalError`


```js
try {
  throw new EvalError("Привет");
} catch (e) {
  console.log(e instanceof EvalError); // true
  console.log(e.message); // "Привет"
  console.log(e.name); // "EvalError"
  console.log(e.stack); // Стек ошибок
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-evalerror |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Error`
* `eval()`
parseFloat()
============

Функция **`parseFloat()`** принимает строку в качестве аргумента и возвращает десятичное число (число с плавающей точкой)

Интерактивный пример
--------------------

Синтаксис
---------
```

parseFloat(строка)
```

### Параметры

`строка`

Текстовая строка, из которой вам надо выделить десятичное число.

### Возвращаемое значение

Число с плавающей точкой, полученное из строки. Если первый символ не может быть сконвертирован в число, то возвращается `NaN`.

Описание
--------

`parseFloat` - это высокоуровневая функция, не привязанная ни к одному объекту.

`parseFloat` разбирает текстовую строку, ищет и возвращает из неё десятичное число. Если функция встретит знак, отличный от (+ или -), цифр(0-9), разделительной точки, или показателя степени, она вернёт значение, предшествующее этому знаку, игнорируя все последующие символы . Допускаются позади и впереди идущие пробелы.

Если первый символ нельзя привести к числовому виду, `parseFloat` вернёт `NaN`.

С точки зрения математики, значение `NaN` не является числом в какой-либо системе счисления. Чтобы определить, вернёт ли `parseFloat` значение `NaN` в качестве результата, можно вызвать функцию `isNaN`. Если `NaN` участвует в арифметических операциях, результатом также будет `NaN`.

`parseFloat` также может вернуть значение `Infinity` ("бесконечность"). Вы можете использовать функцию `isFinite`, чтобы определить, является ли результат конечным числом (not `Infinity`, `-Infinity`, или `NaN`).

Примеры
-------

### `parseFloat` возвращает число

Все примеры ниже вернут **3.14**
```

parseFloat(3.14);
parseFloat('3.14');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14какие-нибудь не цифровые знаки');

var foo = Object.create(null);
foo.toString = function () { return "3.14"; };
parseFloat(foo);

var foo = Object.create(null);
foo.valueOf = function () { return "3.14"; };
parseFloat(foo);
```

### `parseFloat` возвращает NaN

Пример ниже вернёт `NaN`


```js
parseFloat("FF2");
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-parsefloat-string |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `parseInt()`
* `Number.parseFloat()`
* `Number.parseInt()`
* `Number.toFixed()`
* `isNaN()`