recursal/MDN huggingface dataset:
Intl.NumberFormat.prototype.resolvedOptions()
=============================================

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

Метод **`Intl.NumberFormat.prototype.resolvedOptions()`** возвращает новый объект со свойствами, отражающими локаль и параметры форматирования чисел, вычисленные во время инициализации соответствующего объекта `NumberFormat`.

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

numberFormat.resolvedOptions()
```

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

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

`locale`

Языковая метка BCP 47 реально используемой локали. Если во входной языковой метке BCP 47 запрошены какие-либо расширения Unicode, приведшие к этой локали, запрошенные и поддерживаемые для этой локали пары ключ-значение также будут включены в свойство `locale`.

`numberingSystem`

Значение, запрошенное ключом расширения Unicode `"nu"`, либо значение по умолчанию.

`style`

`useGrouping`

Значения, предоставленные для этих свойств в аргументе `options`, либо значения по умолчанию.

`currency`

`currencyDisplay`

Значения, предоставленные для этих свойств в аргументе `options`, либо значения по умолчанию. Эти свойства присутствуют только в том случае, если свойство `style` равно `"currency"`.

Из следующих двух групп свойств включается только одна:

`minimumIntegerDigits`

`minimumFractionDigits`

`maximumFractionDigits`

Значения, предоставленные для этих свойств в аргументе `options`, либо значения по умолчанию. Эти свойства присутствуют только в том случае, если в аргументе `options` не присутствовало ни свойства `minimumSignificantDigits`, ни свойства `maximumSignificantDigits`.

`minimumSignificantDigits`

`maximumSignificantDigits`

Значения, предоставленные для этих свойств в аргументе `options`, либо значения по умолчанию. Эти свойства присутствуют только в том случае, если в аргументе `options` присутствовало хотя бы одно из них.

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

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.resolvedoptions |

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

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

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

* `Intl.NumberFormat`
Proxy.revocable()
=================

Статический метод **`Proxy.revocable()`** создаёт подлежащий отзыву объект `Proxy`.

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


```js
Proxy.revocable(target, handler)
```

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

`target`

Целевой объект для оборачивания в `Proxy`. Это может быть любой объект (массив, функция или даже другой прокси).

`handler`

Объект, свойства которого являются функциями, которые определяют поведение `proxy`, когда с ним происходит действие.

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

Обычный объект с двумя свойствами:

`proxy`

Прокси объект, идентичный создаваемому с помощью вызова `new Proxy(target, handler)` (en-US).

`revoke`

Функция без параметров для отзыва (выключения) `proxy`.

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

Фабричная функция `Proxy.revocable()` это то же самое, что конструктор `Proxy()` (en-US), но в дополнение к созданию прокси объекта она создаёт функцию `revoke`, которая может быть вызвана для отмены прокси. Прокси объект и функция `revoke` оборачиваются в обычный объект.

Функция `revoke` не принимает параметров и не зависит от значения `this`. Созданный объект `proxy` прикрепляется к функции `revoke` в виде приватного свойства, к которому функция `revoke` обращается при вызове (приватное свойство незаметно извне, но оно влияет на то, как происходит сбор мусора). Объект `proxy` *не* попадает в замыкание функции `revoke` (что делает сбор мусора `proxy` невозможным если `revoke` ещё существует).

После вызова функции `revoke()` прокси становится непригодным для использования: любое обращени к обработчику вызовет `TypeError`. Прокси, будучи однажды отозван, остаётся отозванным, и повторный вызов `revoke()` не имеет эффекта — фактически вызов `revoke()` отделяет объект `proxy` от функции `revoke`, и у неё больше нет доступа к объекту. Если на прокси больше нет ссылок, то он становится доступным для сбора мусора. Функция `revoke` также отделяет `target` и `handler` от `proxy`, поэтому если на `target` нет ссылок, то он тоже становится доступным для сбора мусора (даже если прокси ещё существует), поскольку больше нет явного способа взаимодействия с целевым объектом.

Предоставление пользователям возможность взаимодействовать с объектом через подлежащий отзыву прокси позволяет контролировать время жизни объекта доступного пользователю. Вы можете сделать объект пригодным для сбора мусора, даже если пользователь все ещё хранит ссылку на его прокси.

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

### Использование Proxy.revocable()


```js
const revocable = Proxy.revocable(
  {},
  {
    get(target, name) {
      return `[[${name}]]`;
    },
  },
);
const proxy = revocable.proxy;
console.log(proxy.foo); // "[[foo]]"

revocable.revoke();

console.log(proxy.foo); // возникает исключение TypeError
proxy.foo = 1; // снова TypeError
delete proxy.foo; // всё ещё TypeError
typeof proxy; // "object", typeof не вызывает никаких proxy-перехватчиков событий
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy.revocable |

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

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

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

* `Proxy`
handler.deleteProperty()
========================

Метод **`handler.deleteProperty()`** является "ловушкой" (функция-перехватчик) для оператора `delete`.

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

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


```js
var p = new Proxy(target, {
  deleteProperty: function (target, property) {},
});
```

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

Следующие параметры передаются в метод `deleteProperty`.

`target`

Целевой объект.

`property`

Имя или `Symbol` свойства, которое нужно удалить.

`this` в момент вызова ссылается на объект handler.

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

Метод `deleteProperty` должен возвращать `Boolean`. Значение `true`, если свойство было успешно удалено, в противном случае `false`.

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

Метод **`handler.deleteProperty()`** является "ловушкой" для оператора `delete`.

### Перехваты

Данная "ловушка" может перехватывать следующие операции:

* Удаление свойства: `delete proxy[foo]` and `delete proxy.foo`
* `Reflect.deleteProperty()`
### Инварианты

Если следующие инварианты нарушены, то прокси выдаст ошибку `TypeError`:

* Свойство не может быть удалено, если оно неконфигурируемое собственное свойство целевого объекта.
Примеры
-------

Следующий код перехватывает действие оператора `delete`.


```js
var p = new Proxy(
  {},
  {
    deleteProperty: function (target, prop) {
      if (prop in target) {
        delete target[prop];
        console.log("property removed: " + prop);
        return true;
      } else {
        console.log("property not found: " + prop);
        return false;
      }
    },
  },
);

var result;

p.a = 10;
console.log("a" in p); // true

result = delete p.a; // "property removed: a"
console.log(result); // true
console.log("a" in p); // false

result = delete p.a; // "property not found: a"
console.log(result); // false
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-delete-p |

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

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

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

* `Proxy`
* `handler` (en-US)
* `delete` operator
* `Reflect.deleteProperty()`
handler.apply()
===============

Метод **`handler.apply()`** является ловушкой для вызова функции.

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

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

const p = new Proxy(target, {
  apply: function(target, thisArg, argumentsList) {
  }
});
```

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

Методу `apply()` передаются следующие параметры. `this` связан с объектом-обработчиком.

`target`

Исходный объект.

`thisArg`

Аргумент `this` для вызова.

`argumentsList`

Список аргументов для вызова.

### Возврат значения

Метод `apply()` может возвращать значение.

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

Метод **`handler.apply()`** является ловушкой для вызова функции.

### Перехват

Ловушка может перехватывать следующие операции:

* `proxy(...args)`
* `Function.prototype.apply()` и `Function.prototype.call()`
* `Reflect.apply()`
### Инварианты

Если следующие инварианты нарушены, то прокси выбросит `TypeError`.

Исходный объект `target` должен быть самовызываемым. То есть, это должна быть функция-объект.

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

### Ловушка для вызова функции

Следующий код ловит вызов функции.


```js
const p = new Proxy(function () {}, {
  apply: function (target, thisArg, argumentsList) {
    console.log("called: " + argumentsList.join(", "));
    return argumentsList[0] + argumentsList[1] + argumentsList[2];
  },
});

console.log(p(1, 2, 3)); // "called: 1, 2, 3"
// 6
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist |

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

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

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

* `Proxy`
* `handler` (en-US)
* `Function.prototype.apply()`
* `Function.prototype.call()`
* `Reflect.apply()`
handler.get()
=============

Метод **`handler.get()`** является ловушкой для получения значения свойства.

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

Syntax
------
```

const p = new Proxy(target, {
  get: function(target, property, receiver) {
  }
});
```

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

Следующие параметры передаются методу `get()`. `this` привязан к обработчику.

`target`

Исходный объект, который проксируется.

`property`

Наименование или `Symbol` получаемого свойства.

`receiver`

Прокси или объект, наследуемый от прокси..

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

Метод `get()` может возвращать значение.

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

Метод **`handler.get()`** является ловушкой для получения значения свойства.

### Перехват

Эта ловушка может перехватывать следующие операции:

* Доступ к свойству: `proxy[foo]` and `proxy.bar`
* Доступ к наследованному свойству: `Object.create(proxy)[foo]`
* `Reflect.get()`
### Инварианты

Если следующие инварианты нарушены, то прокси выбросит `TypeError`:

* Значение, сообщаемое для свойства, должно быть таким же, как значение соответствующего свойства целевого объекта, если свойство целевого объекта является неперезаписываемым, не настраиваемым свойством собственных данных.
* Значение, сообщаемое для свойства, должно быть undefined, если соответствующее свойство целевого объекта не является настраиваемым собственным свойством доступа, которое `undefined` как и его атрибут `[[Get]]` attribute.
Примеры
-------

### Ловушка для получения значения свойства

Следующий код перехватывает получение значения свойства.


```js
const p = new Proxy(
  {},
  {
    get: function (target, property, receiver) {
      console.log("called: " + property);
      return 10;
    },
  },
);

console.log(p.a); // "called: a"
// 10
```


Следующий код нарушает инвариант.


```js
const obj = {};
Object.defineProperty(obj, "a", {
  configurable: false,
  enumerable: false,
  value: 10,
  writable: false,
});

const p = new Proxy(obj, {
  get: function (target, property) {
    return 20;
  },
});

p.a; // TypeError is thrown
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver |

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

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

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

* `Proxy`
* `handler` (en-US)
* `Reflect.get()`
handler.set()
=============

Метод **handler.set()** является ловушкой для установки значения свойству.

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


```js
var p = new Proxy(target, {
  set: function (target, property, value, receiver) {},
});
```

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

Следующие параметры передаются методу `set()` . `this` привязан к обработчику

`target`

Исходный объект, который проксируется.

`property`

Имя свойства, в которое устанавливается значение `value`.

`value`

Значение, устанавливаемое в свойство `property`.

`receiver`

 Объект, которому первоначально было присвоено задание. Обычно это сам прокси. Но обработчик `set()` также может быть вызван косвенно, через цепочку прототипов или различными другими способами.
 Например, предположим, что скрипт выполняет `obj.name = "jen"`, при этом `obj` не является прокси и не имеет собственного свойства `.name`, но имеет прокси в цепочке прототипов. Будет вызван обработчик прокси `set()` , а `obj` будет передан в качестве получателя.


### Возвращаемые результаты

Метод `set` должен возвращать boolean значение.

* Возвращает `true`, если присвоение выполнено успешно.
* Если метод `set()` возвращает `false`, а присваивание произошло в коде строгого режима, то будет выброшена `TypeError`.
Описание
--------

Метод **`handler.set`** является ловушкой для установки значения свойству.

### Перехват

Эта ловушка может перехватывать следующие операции:

* Установка значения свойству: `proxy[foo] = bar` and `proxy.foo = bar`
* Установка значения наследованному свойству: `Object.create(proxy)[foo] = bar`
* `Reflect.set()` (en-US)
### Инварианты

Если нарушены следующие инварианты, то proxy выбросит `TypeError`:

* Невозможно изменить значение свойства так, чтобы оно отличалось от значения соответствующего свойства целевого объекта, если соответствующее свойство целевого объекта не является доступным для записи и не настраиваемым свойством данных.
* Невозможно установить значение свойства, если соответствующее свойство целевого объекта является неконфигурируемым свойством средства доступа, для которого в качестве атрибута [[Set]] указано значение undefined.
* В строгом режиме при возврате из обработчика `set()` значения `false`, будет выброшено исключение `TypeError`.
Примеры
-------

Следующий код перехватывает установку значения свойству.


```js
var p = new Proxy(
  {},
  {
    set: function (target, prop, value, receiver) {
      target[prop] = value;
      console.log("property set: " + prop + " = " + value);
      return true;
    },
  },
);

console.log("a" in p); // false

p.a = 10; // "property set: a = 10"
console.log("a" in p); // true
console.log(p.a); // 10
```

Specifications
--------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver |

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

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

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

* `Proxy`
* `handler` (en-US)
* `Reflect.set()` (en-US)
Date.prototype.getMonth()
=========================

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

Метод **`getMonth()`** возвращает месяц указанной даты по местному времени, нумерация месяцев начинается с нуля для первого месяца в году.

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

dateObj.getMonth()
```

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

Нет.

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

Значение, возвращённое методом `getMonth()`, является целым числом от 0 до 11. 0 соответствует январю, 1 — февралю и так далее.

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

### Пример: использование метода `getMonth()`

Вторая инструкция в примере ниже присваивает значение 11 переменной `month` из значения переменной `date` объекта `Date`.


```js
let date = new Date("December 25, 1995 23:15:30");
let month = date.getMonth();

console.log(month); // 11
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getmonth |

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

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

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

* `Date.prototype.getUTCMonth()`
* `Date.prototype.setMonth()`
Date.prototype.getDate()
========================

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

Метод **`getDate()`** возвращает день месяца указанной даты по местному времени.

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

dateObj.getDate()
```

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

Нет.

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

Значение, возвращённое методом `getDate()`, является целым числом от 1 до 31.

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

### Пример: использование метода `getDate()`

Вторая инструкция в примере ниже присваивает значение 25 переменной `day` из значения объекта `Date` `date`.


```js
let date = new Date("December 25, 1995 23:15:30");
let day = date.getDate();

console.log(day); // 25
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getdate |

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

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

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

* `Date.prototype.getUTCDate()`
* `Date.prototype.getUTCDay()`
* `Date.prototype.setDate()`
Date.prototype.valueOf()
========================

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

Метод **`valueOf()`** возвращает примитивное значение объекта `Date`.

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

dateObj.valueOf()
```

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

Нет.

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

Метод `valueOf()` возвращает примитивное значение объекта `Date` в виде числового типа данных — количества миллисекунд, прошедших с полуночи 01 января 1970 по UTC.

Этот метод полностью функционально эквивалентен методу `Date.prototype.getTime()`.

Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде.

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

### Пример: использование метода `valueOf()`


```js
var x = new Date(56, 6, 17);
var myVar = x.valueOf(); // присваивает -424713600000 переменной myVar
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.valueof |

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

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

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

* `Object.prototype.valueOf()`
* `Date.prototype.getTime()`
Date.prototype.setSeconds()
===========================

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

Метод **`setSeconds()`** устанавливает секунды указанной даты по местному времени.

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

dateObj.setSeconds(secondsValue[, msValue])
```

### Версия до JavaScript 1.3
```

dateObj.setSeconds(secondsValue)
```

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

`secondsValue`

Целое число от 0 до 59, представляющее количество секунд.

`msValue`

Необязательный параметр. Число от 0 до 999, представляющее количество миллисекунд.

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

Если вы не определите значения параметра `msValue`, будет использоваться значение, возвращаемое методом `getMilliseconds()`.

Если значение определяемого параметра будет выходить за пределы ожидаемого диапазона, метод `setSeconds()` попытается соответственно обновить другой параметр и информацию о дате в объекте `Date`. Например, если в качестве `secondsValue` передать значение 100, минуты увеличатся на 1, а в качестве секунд будет использоваться значение 40.

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

### Пример: использование метода `setSeconds()`


```js
var theBigDay = new Date();
theBigDay.setSeconds(30);
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setseconds |

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

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

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

* `Date.prototype.getSeconds()`
* `Date.prototype.setUTCSeconds()`
Date.prototype.getUTCMonth()
============================

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

Метод **`getUTCMonth()`** возвращает месяц указанной даты по всемирному координированному времени, нумерация месяцев начинается с нуля для первого месяца в году.

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

dateObj.getUTCMonth()
```

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

Нет.

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

Значение, возвращённое методом `getUTCMonth()`, является целым числом от 0 до 11. 0 соответствует январю, 1 — февралю и так далее.

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

### Пример: использование метода `getUTCMonth()`

В следующем примере переменной `month` присваивается значение месяца из текущей даты.


```js
var today = new Date();
var month = today.getUTCMonth();
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcmonth |

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

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

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

* `Date.prototype.getMonth()`
* `Date.prototype.setUTCMonth()`
Date.prototype.setFullYear()
============================

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

Метод **`setFullYear()`** устанавливает полный год указанной даты по местному времени.

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

dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
```

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

`yearValue`

Целое число, определяющее значение года, например, 1995.

`monthValue`

Необязательный параметр. Целое число от 0 до 11, представляющее месяцы от января до декабря.

`dayValue`

Необязательный параметр. Целое число от 1 до 31, представляющее день месяца. Если вы определите параметр `dayValue`, вы также должны определить параметр `monthValue`.

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

Текущее время в миллисекундах для нового значения даты — такое же значение как и у метода `getTime()` для текущего объекта **после** вызова `setFullYear()`.

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

Если вы не определите значения параметров `monthValue` и `dayValue`, будут использоваться значения, возвращаемые методами `getMonth()` и `getDate()`.

Если значение определяемого параметра будет выходить за пределы ожидаемого диапазона, метод `setFullYear()` попытается соответственно обновить другие параметры и информацию о дате в объекте `Date`. Например, если в качестве `monthValue` передать значение 15, год увеличится на 1 (`yearValue + 1`), а в качестве месяца будет использоваться значение 3.

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

### Пример: использование метода `setFullYear()`


```js
var theBigDay = new Date();
theBigDay.setFullYear(1997);
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setfullyear |

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

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

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

* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setUTCFullYear()`
* `Date.prototype.setYear()`
Date.prototype.getMilliseconds()
================================

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

Метод **`getMilliseconds()`** возвращает миллисекунды указанной даты по местному времени.

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

dateObj.getMilliseconds()
```

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

Нет.

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

Значение, возвращённое методом `getMilliseconds()`, является целым числом от 0 до 999.

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

### Пример: использование метода `getMilliseconds()`

В следующем примере переменной `milliseconds` присваиваются миллисекунды текущего времени:


```js
let today = new Date();
let milliseconds = today.getMilliseconds();

console.log(milliseconds); // 709
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getmilliseconds |

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

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

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

* `Date.prototype.getUTCMilliseconds()`
* `Date.prototype.setMilliseconds()`