recursal/MDN huggingface dataset:
Array.prototype.entries()
=========================

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

Метод **`entries()`** возвращает новый объект итератора массива **`Array Iterator`**, содержащий пары ключ / значение для каждого индекса в массиве.

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

arr.entries()
```

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


```js
var arr = ["a", "b", "c"];
var eArr = arr.entries();

console.log(eArr.next().value); // [0, 'a']
console.log(eArr.next().value); // [1, 'b']
console.log(eArr.next().value); // [2, 'c']
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.prototype.entries |

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

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

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

* `Array.prototype.keys()`
* `Array.prototype.forEach()`
* `Array.prototype.every()`
* `Array.prototype.some()`
Array.prototype.pop()
=====================

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

Метод **`pop()`** удаляет **последний** элемент из массива и возвращает его значение.

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

arr.pop()
```

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

Последний элемент массива или `undefined`, если массив пуст.

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

Метод `pop` удаляет последний элемент из массива и возвращает удалённое значение.

Метод `pop` не является привязанным к типу; этот метод может быть вызван или применён к массивоподобным объектам. Объекты, не содержащие свойство `length`, отражающее последний элемент в серии последовательных числовых, начинающихся с нуля, свойств, могут повести себя неправильным образом.

Если вы вызовете `pop()` на пустом массиве, он вернёт значение `undefined`.

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

### Удаление последнего элемента массива

Следующий код создаёт массив `myFish`, содержащий четыре элемента, а затем удаляет последний элемент.


```js
var myFish = ["ангел", "клоун", "мандарин", "хирург"];

console.log(myFish); // ['ангел', 'клоун', 'мандарин', 'хирург']

var popped = myFish.pop();

console.log(myFish); // ['ангел', 'клоун', 'мандарин']

console.log(popped); // 'хирург'
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.prototype.pop |

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

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

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

* `Array.prototype.push()`
* `Array.prototype.shift()`
* `Array.prototype.unshift()`
* `Array.prototype.splice()`
Atomics.sub()
=============

Статический метод **`Atomics.sub()`** вычитает представленное значение из текущего по указанной позиции в массиве и возвращает предыдущее значение в этой позиции. Эта атомарная операция гарантирует, что никакой другой записи не произойдёт, пока изменённое значение не будет записано обратно.

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

Atomics.sub(typedArray, index, value)
```

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

`typedArray`

Разделённый массив целых чисел. `Int8Array`, `Uint8Array` (en-US), `Int16Array` (en-US), `Uint16Array` (en-US), `Int32Array` или `Uint32Array` (en-US).

`index`

Позиция в `typedArray` для добавления `value`.

`value`

Число для вычитания.

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

Предыдущее значение в указанной позиции (`typedArray[index]`).

### Исключения

* Выбрасывает `TypeError`, если тип `typedArray` не является одним из допустимых целочисленных типов.
* Выбрасывает `TypeError`, если тип `typedArray` не общего типа.
* Выбрасывает `RangeError`, если `index` вне `typedArray`.
Примеры
-------


```js
var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
ta[0] = 48;

Atomics.sub(ta, 0, 12); // возвращает 48, предыдущее значение
Atomics.load(ta, 0); // 36
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-atomics.sub |

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

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

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

* `Atomics`
* `Atomics.add()`
Atomics.add()
=============

Статический метод **`Atomics.add()`** добавляет значение к текущему по указанной позиции в массиве и возвращает предыдущее значение в этой позиции. Эта атомарная операция гарантирует, что никакой другой записи не произойдёт, пока изменённое значение не будет записано обратно.

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

Atomics.add(typedArray, index, value)
```

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

`typedArray`

Разделённый массив целых чисел. `Int8Array`, `Uint8Array` (en-US), `Int16Array` (en-US), `Uint16Array` (en-US), `Int32Array` или `Uint32Array` (en-US).

`index`

Позиция в `typedArray` для добавления `value`.

`value`

Число для добавления.

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

Предыдущее значение в указанной позиции (`typedArray[index]`).

### Исключения

* Выбрасывает `TypeError`, если тип `typedArray` не является одним из допустимых целочисленных типов.
* Выбрасывает `TypeError`, если тип `typedArray` не общего типа.
* Выбрасывает `RangeError`, если `index` вне `typedArray`.
Примеры
-------


```js
var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);

Atomics.add(ta, 0, 12); // возвращает 0, предыдущее значение
Atomics.load(ta, 0); // 12
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-atomics.add |

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

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

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

* `Atomics`
* `Atomics.sub()`
TypedArray.prototype.join()
===========================

Метод **`join()`** объединяет все элементы массива в строку. Метод работает по тому же алгоритму, что и `Array.prototype.join()`. *TypedArray* это один из типизированных массивов: типы массивов.

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

typedarray.join([separator = ',']);
```

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

`разделитель`

Необязательный параметр. Определяет строку, разделяющую элементы массива. Разделитель приводится к строке в случае необходимости. Если он опущен, элементы массива разделяются запятой (",").

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

Строка, соединяющая все элементы массива.

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


```js
var uint8 = new Uint8Array([1, 2, 3]);
uint8.join(); // '1,2,3'
uint8.join(" / "); // '1 / 2 / 3'
uint8.join(""); // '123'
```

Полифил
-------

Поскольку теперь нет глобального объекта с именем *TypedArray*, то полифилинг должен быть выполнен "по требованию".


```js
// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join
if (!Uint8Array.prototype.join) {
  Object.defineProperty(Uint8Array.prototype, "join", {
    value: Array.prototype.join,
  });
}
```


Если вам нужна поддержка устаревшего JavaScript-движка, который не поддерживает свойство `Object.defineProperty`, то лучше не создавать полифилы новых методов `Array.prototype`, так как вы не сможете сделать их неперечислимыми.

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-%typedarray%.prototype.join |

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

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

See also
--------

* `TypedArray`
* `Array.prototype.join()`
get TypedArray[@@species]
=========================

**`TypedArray[@@species]`** - это способ доступа, с помощью которого можно получить конструктор типизированного массива.

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

TypedArray[Symbol.species]

где TypedArray это один из:

Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
```

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

Свойство **`species`** возвращает конструктор "по умолчанию" для объектов типизированного массива. Конструкторы подкласса могут его переопределить.

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

Свойство **`species`** возвращает функцию-конструктор "по умолчанию", которая является одним из конструкторов данного типизированного массива:


```js
Int8Array[Symbol.species]; // function Int8Array()
Uint8Array[Symbol.species]; // function Uint8Array()
Float32Array[Symbol.species]; // function Float32Array()
```


В производном объекте-массиве (например, вы разработали свой массив `MyTypedArray`), `MyTypedArray` определяет свой конструктор. Однако, вы можете захотеть его переопределить, например, возвращать родительский объект из вашего производного класса:


```js
class MyTypedArray extends Uint8Array {
  //Переопределение вида MyTypedArray на родительский Uint8Array
  static get [Symbol.species]() {
    return Uint8Array;
  }
}
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-get-%typedarray%-@@species |

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

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

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

* `TypedArray`
* `Symbol.species`
TypedArray.BYTES\_PER\_ELEMENT
==============================

Свойство **`TypedArray.BYTES_PER_ELEMENT`** содержит размер в байтах каждого элемента типизированного массива.

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

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

TypedArray.BYTES_PER_ELEMENT;
```

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

Объекты TypedArray отличаются друг от друга числом байтов на каждый элемент и способом интерпретации байтов. Константа `BYTES_PER_ELEMENT` содержит число байтов, который имеет каждый из элементов в данном массиве.

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


```js
Int8Array.BYTES\_PER\_ELEMENT; // 1
Uint8Array.BYTES\_PER\_ELEMENT; // 1
Uint8ClampedArray.BYTES\_PER\_ELEMENT; // 1
Int16Array.BYTES\_PER\_ELEMENT; // 2
Uint16Array.BYTES\_PER\_ELEMENT; // 2
Int32Array.BYTES\_PER\_ELEMENT; // 4
Uint32Array.BYTES\_PER\_ELEMENT; // 4
Float32Array.BYTES\_PER\_ELEMENT; // 4
Float64Array.BYTES\_PER\_ELEMENT; // 8
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-typedarray.bytes\_per\_element |

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

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

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

* JavaScript typed arrays
* `TypedArray`
TypedArray.prototype.set()
==========================

Метод **`set()`** сохраняет значения в типизированном массиве, читая значения из предоставленного массива.

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

typedarr.set(array [,offset])
typedarr.set(typedarray [,offset])
```

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

array

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

typedarray

Если исходный массив является типизированным массивом, то оба массива могут ссылаться на один и тот же `ArrayBuffer`, т.е. быть разными представлениями (view) одного и того же ArrayBuffer; браузер **скопирует** исходный диапазон буфера в диапазон назначения даже в случае перекрытия диапазонов.

offset Необязательный

Сдвиг для текущего массива, с которого будет производиться запись исходного массива. Если значение опущено, то используется 0 (в таких ситуациях, исходный массив перезапишет значения в текущем массиве начиная с индекса 0).

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

`undefined`.

### Исключения

`RangeError`

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

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

### Использование метода `set`


```js
var buffer = new ArrayBuffer(8);
var uint8 = new Uint8Array(buffer);

uint8.set([1, 2, 3], 3);

console.log(uint8); // Uint8Array [ 0, 0, 0, 1, 2, 3, 0, 0 ]
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-%typedarray%.prototype.set |

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

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

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

* JavaScript typed arrays
* `TypedArray`
* `ArrayBuffer`
Error.prototype.fileName
========================

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

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

Свойство **`fileName`** содержит путь к файлу, в котором возникла эта ошибка.

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

Это нестандартное свойство содержит путь к файлу, в котором возникла эта ошибка. Если доступ к нему получен в контексте отладчика, например, Инструментов разработчика Firefox, вернётся строка «debugger eval code».

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

### Пример: использование `fileName`


```js
var e = new Error("Невозможно разобрать входные данные");
throw e;
// e.fileName может выглядеть так "file:///C:/example.html"
```

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

Не является частью какой-либо спецификации. Не стандартно.

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

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

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

* `Error.prototype.stack` 
Non-standard
* `Error.prototype.columnNumber` 
Non-standard
* `Error.prototype.lineNumber` 
Non-standard
Error.prototype.toString()
==========================

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

Метод **`toString()`** возвращает строку, представляющую указанный объект `Error`.

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

e.toString()
```

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

Объект `Error` переопределяет метод `Object.prototype.toString()`, унаследованный всеми объектами. Его семантика следующая (предполагается, что объекты `Object` и `String` имеют свои изначальные значения):


```js
Error.prototype.toString = function () {
  "use strict";

  var obj = Object(this);
  if (obj !== this) {
    throw new TypeError();
  }

  var name = this.name;
  name = name === undefined ? "Error" : String(name);

  var msg = this.message;
  msg = msg === undefined ? "" : String(msg);

  if (name === "") {
    return msg;
  }
  if (msg === "") {
    return name;
  }

  return name + ": " + msg;
};
```

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


```js
var e = new Error("непоправимая ошибка");
print(e.toString()); // 'Error: непоправимая ошибка'

e.name = undefined;
print(e.toString()); // 'Error: непоправимая ошибка'

e.name = "";
print(e.toString()); // 'непоправимая ошибка'

e.message = undefined;
print(e.toString()); // 'Error'

e.name = "привет";
print(e.toString()); // 'привет'
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-error.prototype.tostring |

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

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

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

* `Error.prototype.toSource()` (en-US)
Error.prototype.name
====================

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

Свойство **`name`** представляет имя типа ошибки. Начальное значение равно строке `"Error"`.

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

По умолчанию, экземпляры `Error` имеют имя `"Error"`. Свойство `name`, вместе со свойством `message`, используется методом `Error.prototype.toString()` для создания строкового представления ошибки.

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

### Пример: выбрасывание собственной ошибки


```js
var e = new Error("Неверные входные данные"); // e.name равно 'Error'

e.name = "ParseError";
throw e;
// e.toString() вернёт 'ParseError: Неверные входные данные'
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-error.prototype.name |

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

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

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

* `Error.prototype.message`
* `Error.prototype.toString()`
Error.prototype.lineNumber
==========================

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

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

Свойство **`lineNumber`** содержит номер строки в файле, в котором возникла эта ошибка.

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

### Пример: использование `lineNumber`


```js
var e = new Error("Невозможно разобрать входные данные");
throw e;
console.log(e.lineNumber); // 2
```

### Пример: альтернативный пример с использованием события `error`


```js
window.addEventListener("error", function (e) {
  console.log(e.lineno); // 5
});
var e = new Error("Невозможно разобрать входные данные");
throw e;
```


Это стандарт и он поддерживается в Chrome, Firefox и, вероятно, много где ещё.

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

Не является частью какой-либо спецификации. Не стандартно.

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

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

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

* `Error.prototype.stack` 
Non-standard
* `Error.prototype.columnNumber` 
Non-standard
* `Error.prototype.fileName` 
Non-standard
Error.prototype.message
=======================

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

Свойство **`message`** представляет человеко-читаемое описание ошибки.

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

Это свойство содержит краткое описание ошибки, если оно доступно или было установлено. SpiderMonkey широко использует свойство `message` для исключений. Свойство `message` в сочетании со свойством `name` используется методом `Error.prototype.toString()` для создания строкового представления ошибки.

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

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

### Пример: выбрасывание собственной ошибки


```js
var e = new Error("Невозможно разобрать входные данные");
// e.message равно 'Невозможно разобрать входные данные'
throw e;
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-error.prototype.message |

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

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

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

* `Error.prototype.name`
* `Error.prototype.toString()`
Error.prototype.columnNumber
============================

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

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

Свойство **`columnNumber`** содержит номер колонки в строке файла, в котором возникла эта ошибка.

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

### Пример: использование `columnNumber`


```js
var e = new Error("Невозможно разобрать входные данные");
throw e;
console.log(e.columnNumber); // 0
```

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

Не является частью какой-либо спецификации. Не стандартно.

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

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

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

* `Error.prototype.stack` 
Non-standard
* `Error.prototype.lineNumber` 
Non-standard
* `Error.prototype.fileName` 
Non-standard
Math.trunc()
============

Функция **`Math.trunc()`** возвращает целую часть числа путём удаления всех дробных знаков.

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

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

Math.trunc(x)
```

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

`x`

Число.

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

`x`

Целая часть данного числа.

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

В отличие от других трёх методов объекта `Math` — `Math.floor()`, `Math.ceil()` и `Math.round()` — метод `Math.trunc()` работает очень просто. Отбрасывается запятая и все цифры после неё, не обращая внимания на знак аргумента.

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

Поскольку `trunc()` является статическим методом объекта `Math`, вы всегда должны использовать его как `Math.trunc()`, а не пытаться вызывать метод на созданном экземпляре объекта `Math` ( `Math` не является конструктором).

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

### Использование `Math.trunc()`


```js
Math.trunc(13.37); // 13
Math.trunc(42.84); // 42
Math.trunc(0.123); // 0
Math.trunc(-0.123); // -0
Math.trunc("-1.123"); // -1
Math.trunc(NaN); // NaN
Math.trunc("foo"); // NaN
Math.trunc(); // NaN
```

Полифил
-------


```js
if (!Math.trunc) {
  Math.trunc = function (v) {
    v = +v;
    if (!isFinite(v)) return v;

    return v - (v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);

    // returns:
    // 0 -> 0
    // -0 -> -0
    // 0.2 -> 0
    // -0.2 -> -0
    // 0.7 -> 0
    // -0.7 -> -0
    // Infinity -> Infinity
    // -Infinity -> -Infinity
    // NaN -> NaN
    // null -> 0
  };
}
```


Либо:


```js
if (!Math.trunc) {
  Math.trunc = function (v) {
    v = +v;
    return v - (v % 1) || (!isFinite(v) || v === 0 ? v : v < 0 ? -0 : 0);
  };
}
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-math.trunc |

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

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

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

* `Math.abs()`
* `Math.ceil()`
* `Math.floor()`
* `Math.round()`
* `Math.sign()`
Math.tanh()
===========

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

Метод **`Math.tanh()`** возвращает гиперболический тангенс числа, то есть



tanh
x
=

sinh
x

cosh
x

=

e
x

-

e

-
x


e
x

+

e

-
x

=

e

2
x

-
1

e

2
x

+
1

\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1}

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

Math.tanh(x)
```

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

`x`

Число.

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

Поскольку метод `tanh()` является статическим методом объекта `Math`, вы всегда должны использовать его как `Math.tanh()`, а не пытаться вызывать метод на созданном экземпляре объекта `Math` (поскольку объект `Math` не является конструктором).

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

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


```js
Math.tanh(0); // 0
Math.tanh(Infinity); // 1
Math.tanh(1); // 0.7615941559557649
```

Полифил
-------

Этот метод может эмулироваться при помощи двух вызовов метода `Math.exp()`:


```js
Math.tanh =
  Math.tanh ||
  function (x) {
    if (x === Infinity) {
      return 1;
    } else if (x === -Infinity) {
      return -1;
    } else {
      return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x));
    }
  };
```


либо при помощи только одного вызова метода `Math.exp()`:


```js
Math.tanh =
  Math.tanh ||
  function (x) {
    if (x === Infinity) {
      return 1;
    } else if (x === -Infinity) {
      return -1;
    } else {
      var y = Math.exp(2 \* x);
      return (y - 1) / (y + 1);
    }
  };
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-math.tanh |

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

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

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

* `Math.acosh()` 
Экспериментальная возможность
* `Math.asinh()` 
Экспериментальная возможность
* `Math.atanh()` 
Экспериментальная возможность
* `Math.cosh()` 
Экспериментальная возможность
* `Math.sinh()` 
Экспериментальная возможность
Math.cos()
==========

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

Метод **`Math.cos()`** возвращает косинус числа.

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

Math.cos(x)
```

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

`x`

Число радиан.

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

Метод `Math.cos()` возвращает числовое значение от -1 до 1, которое представляет косинус угла.

Поскольку метод `cos()` является статическим методом объекта `Math`, вы всегда должны использовать его как `Math.cos()`, а не пытаться вызывать метод на созданном экземпляре объекта `Math` (поскольку объект `Math` не является конструктором).

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

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


```js
Math.cos(0); // 1
Math.cos(1); // 0.5403023058681398

Math.cos(Math.PI); // -1
Math.cos(2 \* Math.PI); // 1
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-math.cos |

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

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

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

* `Math.acos()`
* `Math.asin()`
* `Math.atan()`
* `Math.atan2()`
* `Math.sin()`
* `Math.tan()`