Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.
Сводка
Метод Math.hypot()
возвращает квадратный корень суммы квадратов своих аргументов, то есть
Синтаксис
Math.hypot([value1[, value2[, ...]]])
Параметры
value1, value2, ...
- Числа.
Описание
Поскольку метод hypot()
является статическим методом объекта Math
, вы всегда должны использовать его как Math.hypot()
, а не пытаться вызывать метод на созданном экземпляре объекта Math
(поскольку объект Math
не является конструктором).
При вызове без аргументов результатом вызова будет значение +0.
Если хотя бы один из аргументов не может быть преобразован в число, результатом будет NaN
.
При вызове с одним аргументом, метод Math.hypot()
то же самое значение, что и метод Math.abs()
.
Примеры
Пример: использование метода Math.hypot()
Math.hypot(3, 4); // 5 Math.hypot(3, 4, 5); // 7.0710678118654755 Math.hypot(); // 0 Math.hypot(NaN); // NaN Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN Math.hypot(3, 4, '5'); // 7.0710678118654755, +'5' => 5 Math.hypot(-3); // 3, то же самое, что и Math.abs(-3)
Полифилл
Этот метод может эмулироваться следующим образом:
Math.hypot = Math.hypot || function() { var y = 0; var length = arguments.length; for (var i = 0; i < length; i++) { if (arguments[i] === Infinity || arguments[i] === -Infinity) { return Infinity; } y += arguments[i] * arguments[i]; } return Math.sqrt(y); };
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Math.hypot' в этой спецификации. |
Стандарт | Изначальное определение. |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | 38 | 27 (27) | Нет | 25 | 7.1 |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | Нет | Нет | 27.0 (27) | Нет | Нет | iOS 8 |