E | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LN2 | Chrome Полная поддержка | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs |
LN10 | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
LOG2E | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
LOG10E | Chrome Полная поддержка 1 | Edge Полная поддержка | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
PI | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
SQRT1_2 | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
SQRT2 | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
abs | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
acos | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
acosh | Chrome Полная поддержка 38 | Edge Полная поддержка 12 | Firefox Полная поддержка 25 | IE Нет поддержки Нет | Opera Полная поддержка 25 | Safari Полная поддержка 8 | WebView Android Полная поддержка 38 | Chrome Android Полная поддержка 38 | Firefox Android Полная поддержка 25 | Opera Android Полная поддержка 25 | Safari iOS Полная поддержка 8 | Samsung Internet Android Полная поддержка 3.0 | nodejs Полная поддержка 0.12 |
asin | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
asinh | Chrome Полная поддержка 38 | Edge Полная поддержка 12 | Firefox Полная поддержка 25 | IE Нет поддержки Нет | Opera Полная поддержка 25 | Safari Полная поддержка 8 | WebView Android Полная поддержка 38 | Chrome Android Полная поддержка 38 | Firefox Android Полная поддержка 25 | Opera Android Полная поддержка 25 | Safari iOS Полная поддержка 8 | Samsung Internet Android Полная поддержка 3.0 | nodejs Полная поддержка 0.12 |
atan | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
atan2 | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 4 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
atanh | Chrome Полная поддержка 38 | Edge Полная поддержка 12 | Firefox Полная поддержка 25 | IE Нет поддержки Нет | Opera Полная поддержка 25 | Safari Полная поддержка 8 | WebView Android Полная поддержка 38 | Chrome Android Полная поддержка 38 | Firefox Android Полная поддержка 25 | Opera Android Полная поддержка 25 | Safari iOS Полная поддержка 8 | Samsung Internet Android Полная поддержка 3.0 | nodejs Полная поддержка 0.12 |
cbrt | Chrome Полная поддержка 38 | Edge Полная поддержка 12 | Firefox Полная поддержка 25 | IE Нет поддержки Нет | Opera Полная поддержка 25 | Safari Полная поддержка 8 | WebView Android Полная поддержка 38 | Chrome Android Полная поддержка 38 | Firefox Android Полная поддержка 25 | Opera Android Полная поддержка 25 | Safari iOS Полная поддержка 8 | Samsung Internet Android Полная поддержка 3.0 | nodejs Полная поддержка 0.12 |
ceil | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
clz32 | Chrome Полная поддержка 38 | Edge Полная поддержка 12 | Firefox Полная поддержка 31 | IE Нет поддержки Нет | Opera Полная поддержка 25 | Safari Полная поддержка 7 | WebView Android Полная поддержка 38 | Chrome Android Полная поддержка 38 | Firefox Android Полная поддержка 31 | Opera Android Полная поддержка 25 | Safari iOS Полная поддержка 7 | Samsung Internet Android Полная поддержка 3.0 | nodejs Полная поддержка 0.12 |
cos | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
Метод | Описание | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|---|
abs() | Вычисляет и возвращает абсолютное значение переданного числа. | Да | Да | Да | Да | Да | Да |
acos() | Вычисляет и возвращает арккосинус переданного числа. | Да | Да | Да | Да | Да | Да |
acosh() | Вычисляет и возвращает гиперболический арккосинус переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
asin() | Вычисляет и возвращает арксинус переданного числа. | Да | Да | Да | Да | Да | Да |
asinh() | Вычисляет и возвращает гиперболический арксинус переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
atan() | Вычисляет и возвращает арктангенс переданного числа. | Да | Да | Да | Да | Да | Да |
atan2() | Вычисляет и возвращает угол между осью X и точкой. | Да | Да | Да | Да | Да | Да |
atanh() | Вычисляет и возвращает гиперболический арктангенс переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
cbrt() | Вычисляет и возвращает кубический корень переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
ceil() | Вычисляет и возвращает наименьшее целое число, которое больше или равно переданному числу (округляет число вверх). | Да | Да | Да | Да | Да | Да |
clz32() | Возвращает количество ведущих нулевых битов в 32-битном двоичном представлении числа. | 38.0 | 31.0 | 25.0 | 8.0 | Нет | Да |
cos() | Вычисляет и возвращает косинус переданного числа | Да | Да | Да | Да | Да | Да |
cosh() | Вычисляет и возвращает гиперболический косинус переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
exp() | Вычисляет и возвращает степень числа Е (Ex, где x — аргумент, а E — основание натурального логарифма). | Да | Да | Да | Да | Да | Да |
expm1() | Вычисляет и возвращает степень числа Е минус 1 (Ex-1, где x — аргумент, а E — основание натурального логарифма). | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
floor() | Вычисляет и возвращает наибольшее целое число, которое меньше или равно переданному числу (округляет число вниз). | Да | Да | Да | Да | Да | Да |
fround() | Вычисляет и возвращает ближайшее число с плавающей запятой одинарной точности, представляющее указанное число. | 38.0 | 26.0 | 25.0 | 8.0 | Нет | Да |
hypot() | Вычисляет и возвращает квадратный корень из суммы квадратов своих аргументов. | 38.0 | 27.0 | 25.0 | 8.0 | Нет | Да |
imul() | Вычисляет и возвращает результат C-подобного 32-битного умножения двух параметров. | 38.0 | 20.0 | 16.0 | 7.0 | Нет | Да |
log() | Вычисляет и возвращает натуральный логарифм переданного числа. | Да | Да | Да | Да | Да | Да |
log1p() | Вычисляет и возвращает натуральный логарифм 1 + x для переданного числа x. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
log2() | Вычисляет и возвращает двоичный (по основанию 2) логарифм переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
log10() | Вычисляет и возвращает десятичный (по основанию 10) логарифм переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
max() | Позволяет найти и возвратить наибольшее из переданных чисел. | Да | Да | Да | Да | Да | Да |
min() | Позволяет найти и возвратить наименьшее из переданных чисел. | Да | Да | Да | Да | Да | Да |
pow() | Вычисляет и возвращает переданное число x в указанной степени y. | Да | Да | Да | Да | Да | Да |
random() | Возвращает псевдослучайное число от 0 до 1. | Да | Да | Да | Да | Да | Да |
round() | Возвращает значение переданного числа, округленного до ближайшего целого числа. | Да | Да | Да | Да | Да | Да |
sign() | Возвращает знак переданного числа, указывающий на то, является ли число положительным, отрицательным или соответствует значению ноль. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
sin() | Вычисляет и возвращает синус переданного числа. | Да | Да | Да | Да | Да | Да |
sinh() | Вычисляет и возвращает гиперболический синус переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
sqrt() | Вычисляет и возвращает квадратный корень переданного числа. | Да | Да | Да | Да | Да | Да |
tan() | Вычисляет и возвращает тангенс переданного числа. | Да | Да | Да | Да | Да | Да |
tanh() | Вычисляет и возвращает гиперболический тангенс переданного числа. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
trunc() | Вычисляет и возвращает целочисленную часть перданного числа, удаляя при этом любые дробные цифры. | 38.0 | 25.0 | 25.0 | 8.0 | Нет | Да |
Работа с числами и математическими методами в JavaScript
Подборка самых важных и часто используемых методов работы с числами и математическими функциями в JavaScript с примерами.
Вам будет проще разобраться с этими методами, если вы уже знакомы с типами данных в JavaScript.
Основы работы с числами
Это означает, что все числа в JavaScript имеют плавающую запятую. Пусть вас не обманывает запись var x = 1
, на самом деле это float, равный 1.0
.
Если вы действительно хотите разобраться в особенностях чисел в JS, загляните сюда:
А в этой статье мы сконцентрируемся на методах работы со значениями типа Number.
Создание чисел
Объявить переменную, содержащую числовое значение, можно с помощью ключевых слов let (если она будет изменяться) или const (если не будет). Перед отрицательными числами ставится -
:
const PI = 3.14 const x = 1 const n = -10
Единственный 0 в целой или дробной части числа можно не указывать, но все же стоит это делать для лучшей читаемости кода.
const y = 0.15 const z = .90 const t = 5.
Будьте осторожны с ограничениями по размеру:
const r = 9999999999999999 // 10000000000000000 const l = 999999999999999999999999 // 1e+25 const i = Infinity // Infinity - бесконечность со знаком +
Конвертация в число:
const str = '24.23' const bin = '110110' const short = +str // 24.23 const num = Number(str) // 24.23 // второй аргумент – основание системы счисления const b = Number.parseInt(bin, 2) // 54
Можно работать и в других системах счисления:
const hex = 0xff // 255 const octal = 012 // 10 const betterOctal = 0o23 // 19 - способ работы с восьмеричной системой, введенный в ES6 const binary = 0b1101 // 13
Важные принципы
- все числа – с плавающей точкой;
- все числа имеют один тип — «number»;
- как и в других языках, в JS существуют ограничения по максимальному размеру и точности чисел.
Основные методы
Безопасные числа
Скорее всего, вы хотите, чтобы значение числа всегда оставалось тем же самым, что вы ему задали. Но если вы используете в коде, к примеру, число 900719925474099164 оно превратится в 900719925474099200. Дело в том, что оно выходит за пределы так называемого безопасного диапазона.
Узнать эти пределы можно, обратившись к свойствам объекта Number MIN_SAFE_INTEGER и MAX_SAFE_INTEGER. А с помощью функции Number.isSafeInteger можно определить, является ли число безопасным.
// константы минимального и максимального безопасных чисел Number.MAX_SAFE_INTEGER // 9007199254740991 Number.MIN_SAFE_INTEGER // -9007199254740991 // не путайте их с минимальным и максимальным числом Number.MAX_VALUE // 1.7976931348623157e+308 Number.MIN_VALUE // 5e-324 // проверка, находится ли число в безопасном диапазоне Number.isSafeInteger(1.7976931348623157e+308) // false Number.isSafeInteger(9007199254740991) // true
Целое ли число?
Используйте метод isInteger
объекта Number
. Если число не имеет десятичной части, он возвращает true
. Обратите внимание, что числа с пустой десятичной частью автоматически конвертируются в целые.
Number.isInteger(5) // true Number.isInteger(5 / 2) // false Number.isInteger(5.00) // true
Есть более короткий, но менее читаемый способ проверить, целое ли число:
5 % 1 === 0 // true 5.5 % 1 === 0 // false
Изменение количества знаков после запятой
Используйте метод Number.toFixed
, который принимает количество знаков десятичной части, а возвращает строковое представление числа в нужном формате.
const a = 5.6710142 const b = 0.993 a.toFixed(2) // '5.67' a.toFixed(1) // '5.7' b.toFixed() // '1' b.toFixed(20) // '0.99299999999999999378' b.toFixed(30) // некоторые браузеры не поддерживают более 20 символов
Также можно воспользоваться методом Number.toPrecision
, которому нужно передать количество значащих цифр числа. На выходе также получается строка:
const a = 5.6710142 const b = 0.993 a.toPrecision(2) // '5.7' a.toPrecision(1) // '6' b.toPrecision() // 0.993 b.toPrecision(20) // 0.99299999999999999378
Преобразование в экспоненциальную форму
Экспоненциальная форма известна также известна как научная нотация. Для преобразования существует специальный метод toExponential
. Его единственный необязательный параметр – количество цифр после запятой.
const x = 25893210 const y = 33.1894 const z = 10000000 const p = x.toExponential() // '2.589321e+7' y.toExponential() // '3.31894e+1' z.toExponential() // '1e+7' z.toExponential(2) // '1.00e+7' // обратное преобразование console.log(p) // '2.589321e+7' Number(p) // 25893210 parseFloat(p) // 25893210
Глобальные функции для работы с числами и методы Number
Вы, возможно, знаете, что существуют глобальные функции вроде parseInt
, но только что мы использовали Number.parseInt()
.
Дело в том, что последний стандарт JavaScript пытается модуляризировать глобальные сущности и обновляет некоторые существующие модули. Например, метод isNaN
отличается от нового метода Number.isNaN
.
Работа с большими числами
Тип BigInt на данный момент находится в статусе предложения и недоступен в ряде браузеров. Большие числа создаются путем добавления n
в конец числа или с помощью конструктора.
const large = 9007199254740991n const constructed = BigInt(9007199254740991) // 9007199254740991n const fromString = BigInt('9007199254740991') // 9007199254740991n const safe = BigInt(Number.MAX_SAFE_INTEGER) // 9007199254740991n safe + 3n // 9007199254740994n large + safe // 18014398509481982n
Пока нет полной поддержки BigInt, вы можете использовать библиотеку bignumber.js.
Преобразование в другую систему счисления
Перевести число из десятичной системы в другую можно с помощью метода toString
, указав желаемое основание системы (от 2 до 36). Для обратного преобразования используйте метод parseInt
:
const num = 3241 const bin = num.toString(2) // '110010101001' num.toString(8) // '6251' num.toString(16) // 'ca9' num.toString(10) // '3241' Number.parseInt(bin, 2) // 3241
Методы числовых литералов
Возможно, вы попытались применить какой-нибудь метод к числовому литералу (23.toString(2)
) и получили синтаксическую ошибку. Это связано со специфическим представлением чисел в JavaScript. Валидная форма для числа 23 — 23.
или 23.0
(0 в дробной части можно не указывать).
Когда вы пишете 23.toString(2)
JavaScript считает эту запись числом и не понимает, что вызывается метод.
Решением может быть использование скобок или двух точек для указания дробной части (хотя это довольно непонятная запись):
(23).toString(2) // "10111" 23..toString(2)
Не число – это число
Подробное объяснение этого феномена можно найти в статье JS Essentials: Types & Data Structures.
Коротко говоря, NaN
является объектом класса Number, но определяется как результат математических операций, значение которых количественно число не является. Правильнее было бы назвать его Invalid Number.
NaN
превращает все, с чем имеет дело, в NaN
.
const a = 5 + NaN // NaN
Проверка на NaN
Это единственное значение в JavaScript, которое не равно самому себе. Мы можем использовать это, применяя проверку x !== x
. Если это условие возвращает true
, то x – это NaN
.
Помимо этого можно использовать методы Object.is
, isNaN
и новый метод Number.isNaN
. Обратите внимание, два последних метода ведут себя по-разному с нечисловыми значениями.
NaN == NaN // false NaN === NaN // false Object.is(NaN, NaN) // true isNaN(NaN) // true isNaN('abc') // true Number.isNaN(NaN) // true Number.isNaN('abc') // false Number.isNaN(+'abc') // true
Способы округления чисел
const x = 5.921 // округление вниз Math.floor(x) // 5 // округление вверх Math.ceil(x) // 6 // округление по правилам математики Math.round(x) // 6 Math.round(5.5) // 6 // до нужного количества цифр после точки x.toFixed(2) // 5.92 x.toPrecision(2) // 5.9 // битовый сдвиг // работает быстрее, чем Math.floor // но очень неочевидно для ваших коллег x >> 0 // 5
Возведение в степень
В JavaScript существует специальный оператор степени – **
. Также можно воспользоваться методом Math.pow
.
2 ** 2 // 4 let x = 2 x ** = 4 // 16 Math.pow(2, 4) // 16
Генерация случайного числа
Метод Math.random
генерирует дробное число в диапазоне от 0 (включая) до 1 (не включая).
Math.random() // 0.7610368478059286 // генерация числа в диапазоне от 0 до 9 // битовый сдвиг работает как Math.floor Math.random() * 10 >> 0 Math.floor(Math.random() * 10) // генерация числа в диапазоне [x, y) const getRandom = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
Вот небольшой пример: создадим сет – набор уникальных значений, заполним его случайными числами с помощью метода getRandom
и отсортируем:
for (let i of Array(500)) { values.add(getRandom(1, 10)) } [...values].sort((a, b) => a - b) // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
Математические функции
В модуле Math
очень много полезных методов, которые вы можете найти в документации. Все они имеют довольно очевидный принцип работы.
Полезные ссылки
Практика работы с числами
Несколько полезных челленджей на codewars.com.
Перевод статьи JavaScript Essentials: Numbers and Math.
Полезные ресурсы для начинающего JavaScript-разработчика
JavaScript — Математические операции | ИТ Шеф
- Статьи
- Видеоуроки
- Таймлайн
- Вопросы
- Поиск
-
- Войти
- Регистрация
- HTML & CSS
- JavaScript
- Bootstrap
- PHP
- MODX
|
Объект Math | JavaScript справочник
Math — встроенный объект, который предоставляет для использования основные математические константы и функции:
Math.свойство Math.метод()
Объект Math не может быть создан с помощью функции конструктора и оператора new, если попытаться это сделать, то в сценарии возникнет ошибка. Интерпретатор JavaScript создает объект Math сразу после того как интерпретатор будет загружен. Все его методы и свойства доступны сценарию в любом месте вашей программы.
Методы
Метод | Описание |
---|---|
abs(x) | Возвращает абсолютную величину числа x.
Примечание: абсолютной величиной положительного числа называется само это число. Абсолютной величиной отрицательного числа называется противоположное ему положительное число. Абсолютная величина нуля есть ноль. |
acos(x) | Возвращает арккосинус числа. |
asin(x) | Возвращает арксинус числа. |
atan(x) | Возвращает арктангенс числа. |
atan2(y, x) | Возвращает угол от оси X до точки с координатами (y,x). |
ceil(x) | Округляет число в большую сторону до ближайшего целого и возвращает полученный результат. |
cos(x) | Возвращает косинус числа. |
exp(x) | Возвращает e (основание натуральных логарифмов), возведенное в степень. |
floor(x) | Округляет число в меньшую сторону, отбрасывая дробную часть и возвращая целое число. |
log(x) | Возвращает натуральный логарифм числа. |
max(x, y, z,…,n) | Возвращает большее из предоставленных числовых значений. Если хотя бы один из аргументов не может быть преобразован в число, то результатом будет NaN. |
min(x, y, z,…,n) | Возвращает меньшее из предоставленных числовых значений. Если хотя бы один из аргументов не может быть преобразован в число, то результатом будет NaN. |
pow(x, y) | Возвращает значение числа x, возведенного в указанную степень (число y). |
random() | Возвращает псевдослучайное число между 0 и 1. |
round(x) | Округляет число с плавающей точкой в большую или меньшую сторону до ближайшего целого числа. |
sin(x) | Возвращает синус числа. |
sqrt(x) | Возвращает квадратный корень числа. |
tan(x) | Возвращает тангенс числа. |
Примечание: тригонометрические функции (sin, cos, tan, asin, acos, atan и atan2) принимают или возвращают величину углов в радианах.
Свойства
Свойство | Описание |
---|---|
E | Возвращает основание натурального логарифма — константа e (приблизительно 2.718). |
LN2 | Возвращает натуральный логарифм числа 2 (приблизительно 0.693). |
LN10 | Возвращает натуральный логарифм числа 10 (приблизительно 2.303). |
LOG2E | Возвращает логарифм числа e по основанию 2 (приблизительно 1.442). |
LOG10E | Возвращает логарифм числа e по основанию 10 (приблизительно 0.434). |
PI | Возвращает число Пи. |
SQRT1_2 | Возвращает квадратный корень числа 0.5 (приблизительно 0.707). |
SQRT2 | Возвращает квадратный корень числа 2 (приблизительно 1.414). |
JavaScript Арифметика
JavaScript арифметические операторы
Арифметические операторы предназначены для выполнения арифметических действий над числами (литералами или переменными).
Оператор | Описание |
---|---|
+ | Сложение |
— | Вычитание |
* | Умножение |
/ | Деление |
% | Модуль |
++ | Увеличение |
— | Уменьшение |
Арифметические операторы
Типичная арифметическая операция управляет двумя числами.
Два числа так же, могут быть литералами:
или переменные:
или выражениеми:
Операторы и операнды
Числа, в арифметической операции, называются операндами.
Операция, которая будет выполняться между двумя операндами, определяется как оператор.
Операнд | Оператор | Операнд |
---|---|---|
100 | + | 50 |
Оператор сложения +
складывает числа:
Оператор вычитание -
вычитает числа.
Оператор умножения *
умножает числа.
Оператор деления /
делит числа.
Оператор модуль %
возвращает остаток деления.
Оператор увеличения ++
увеличивает числа.
Оператор уменьшения --
уменьшения числа.
Оператор приоритета
Приоритет оператора описывает порядок выполнения операций в арифметическом выражении.
Сложение или умножение, делается первым?
Как и в традиционной школьной математике, умножение делается первым.
Умножение *
и деление /
имеют наивысшей приоритет,
чем сложение +
и вычитания -
.
И, как в школьной математике, приоритет можно изменить с помощью скобок:
При использовании круглых скобок сначала вычисляются операции внутри круглых скобок.
Когда многие операции имеют одинаковый приоритет (сложение и вычитание), они вычисляются слева направо:
JavaScript Оператор приоритет значения
Бледно-красные записи указывают на ECMAScript 2015 (ES6) или раньше.
Значение | Оператор | Описание | Пример |
---|---|---|---|
20 | ( ) | Группировка выражений | (3 + 4) |
19 | . | Сотрудник | person.name |
19 | [] | Сотрудник | person[«name»] |
19 | () | Вызов функции | myFunction() |
19 | new | Создать | new Date() |
17 | ++ | Постфикс Инкремент | i++ |
17 | — | Постфикс Декремент | i— |
16 | ++ | Префикс Инкремент | ++i |
16 | — | Префикс Декремент | —i |
16 | ! | Логический не | !(x==y) |
16 | typeof | Тип | typeof x |
15 | ** | Возведение в степень (ES2016) | 10 ** 2 |
14 | * | Умножение | 10 * 5 |
14 | / | Деление | 10 / 5 |
14 | % | Остаток Деления | 10 % 5 |
13 | + | Сложение | 10 + 5 |
13 | — | Вычитание | 10 — 5 |
12 | << | Сдвиг влево | x << 2 |
12 | >> | Сдвиг вправо | x >> 2 |
12 | >>> | Сдвиг вправо (без знака) | x >>> 2 |
11 | < | Меньше чем | x < y |
11 | <= | Меньше или равно | x <= y |
11 | > | Больше чем | x > y |
11 | >= | Больше или равно | x >= y |
11 | in | Свойство в объекте | «PI» in Math |
11 | instanceof | Инстанция объекта | instanceof Array |
10 | == | Равный | x == y |
10 | === | Строго равный | x === y |
10 | != | Неравный | x != y |
10 | !== | Строго неравные | x !== y |
9 | & | Битовый И | x & y |
8 | ^ | Битовый НЕ | x ^ y |
7 | | | Битовый ИЛИ | x | y |
6 | && | Логический И | x && y |
5 | || | Логический ИЛИ | x || y |
4 | ? : | Кондиция | ? «Yes» : «No» |
3 | += | Назначение | x += y |
3 | /= | Назначение | x /= y |
3 | -= | Назначение | x -= y |
3 | *= | Назначение | x *= y |
3 | %= | Назначение | x %= y |
3 | <<= | Назначение | x <<= y |
3 | >>= | Назначение | x >>= y |
3 | >>>= | Назначение | x >>>= y |
3 | &= | Назначение | x &= y |
3 | ^= | Назначение | x ^= y |
3 | |= | Назначение | x |= y |
2 | yield | Функция «Пауза» | yield x |
1 | , | Запятая | 5 , 6 |
Выражения в круглых скобках полностью вычисляются перед значением используется в остальной части выражения.
math.abs (x) | Вычислить абсолютное значение числа. |
math.add (x, y) | Добавьте два или более значений, x + y . |
math.cbrt (x [, allRoots]) | Вычислить кубический корень из значения. |
math.ceil (x) | Округлить значение в сторону плюс бесконечности Если x является комплексным, действительная и мнимая части округляются в сторону плюс бесконечности. |
math.cube (x) | Вычислить куб значения x * x * x . |
math.divide (x, y) | Разделите два значения, x / y . |
math.dotDivide (x, y) | Разделить две матрицы поэлементно. |
math.dotMultiply (x, y) | Умножение двух матриц поэлементно. |
математика.точкаPow (х, у) | Вычисляет степень от x до y поэлементно. |
math.exp (x) | Вычислить показатель степени значения. |
math.expm1 (x) | Рассчитайте значение вычитания 1 из экспоненциального значения. |
math.fix (x) | Округлите значение до нуля. |
мат. Пол (x) | Округлите значение до минус бесконечности. |
math.gcd (а, б) | Вычислить наибольший общий делитель для двух или более значений или массивов. |
математический.гипот (a, b,…) | Вычислить гипотенузу списка со значениями. |
math.lcm (а, б) | Вычислить наименьшее общее кратное для двух или более значений или массивов. |
math.log (x [, основание]) | Вычислить логарифм значения. |
math.log10 (x) | Вычислить десятичный логарифм значения. |
math.log1p (x) | Вычислите логарифм значения + 1 . |
math.log2 (x) | Вычислите двойное основание значения. |
math.mod (x, y) | Вычисляет модуль, остаток от целочисленного деления. |
математическое умножение (x, y) | Умножение двух или более значений, x * y . |
math.norm (x [, p]) | Вычислить норму числа, вектора или матрицы. |
math.nthRoot (a) | Вычислить корень n-й степени значения. |
math.nth Корни (x) | Вычислить корни n-й степени значения. |
математика.y . | |
math.round (x [, n]) | Округлить значение до ближайшего целого числа. |
математический знак (x) | Вычислить знак значения. |
math.sqrt (x) | Вычислить квадратный корень из значения. |
математический квадрат (x) | Вычислить квадрат значения x * x . |
математика.вычесть (x, y) | Вычтите два значения: x - y . |
math.unaryMinus (x) | Инвертировать знак значения, применить унарную операцию минус. |
math.unaryPlus (x) | Операция «Унарный плюс». |
math.xgcd (а, б) | Вычислить наибольший общий делитель двух значений. |
jquery — Математические функции Javascript
Переполнение стека- Около
- Товары
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- реклама Обратитесь к разработчикам и технологам со всего мира
- О компании
обширная математическая библиотека для JavaScript и Node.js
Math.js — обширная математическая библиотека для JavaScript и Node.js. Он имеет гибкий анализатор выражений с поддержкой символьных вычислений, поставляется с большим набором встроенных функций и констант и предлагает интегрированное решение для работы с различными типами данных, такими как числа, большие числа, комплексные числа, дроби, единицы и т. Д. матрицы. Мощный и простой в использовании.
- Поддерживает числа, большие числа, комплексные числа, дроби, единицы, строки, массивы и матрицы.
- Совместим со встроенной математической библиотекой JavaScript.
- Содержит гибкий синтаксический анализатор выражений.
- Выполняет символьные вычисления.
- Поставляется с большим набором встроенных функций и констант.
- Может также использоваться как приложение командной строки.
- Работает на любом движке JavaScript.
- Легко расширяется.
- Открытый исходный код.
Вот пример кода, демонстрирующий, как использовать библиотеку.2 ‘) // 0,5 math.evaluate (‘9/3 + 2i’) // 3 + 2i math.evaluate (‘det ([- 1, 2; 3, 1])’) // -7 // цепочка math.chain (3) .add (4) .multiply (2) .done () // 14
Попробуйте синтаксический анализатор выражений ниже.
См. «Математический блокнот» для полного приложения.
загрузка …
Горячие клавиши:- Нажмите S , чтобы установить фокус на поле ввода
- Нажмите Ctrl + F11 для переключения в полноэкранный режим
- Введите «очистить» , чтобы очистить историю
обширная математическая библиотека для JavaScript и Node.js
На этой странице описан синтаксис парсера выражений math.js. Он описывает как работать с доступными типами данных, функциями, операторами, переменными, и больше.
Отличия от JavaScript #
Синтаксический анализатор выражений math.js нацелен на математическую аудиторию, не аудитория программирования. Синтаксис похож на большинство калькуляторов и математические приложения. Это тоже близко к JavaScript, хотя там несколько важных различий между синтаксисом синтаксического анализатора выражений и синтаксис математики нижнего уровня.JS. Отличия:
- Нет необходимости в префиксе функций и констант с помощью пространства имен
math. *
, вы можете просто ввестиsin (pi / 4)
. - Матричные индексы отсчитываются от единицы, а не от нуля.
- Есть операторы индекса и диапазона, которые позволяют более удобно получать
и установка индексов матрицы, например
A [2: 4, 1]
. - И индексы, и диапазоны включают верхнюю границу.
- Существует другой синтаксис для определения функций. используется для возведения в степень, не побитовый xor.
- Неявное умножение, такое как
2 pi
, поддерживается и имеет особые правила. - Операторы отношения (
<
,>
,<=
,> =
,==
и! =
) связаны цепочкой, поэтому выражение5
эквивалентно 5
Операторы №
В анализаторе выражений есть операторы для всех распространенных арифметических операций, таких как как сложение и умножение.Парсер выражений использует обычный инфиксный обозначение операторов: оператор помещается между его аргументами. Круглые скобки могут использоваться для отмены приоритета операторов по умолчанию.
// используйте операторы
math.evaluate ('2 + 3') // 5
math.evaluate ('2 * 3') // 6
// используйте круглые скобки для отмены приоритета по умолчанию
math.evaluate ('2 + 3 * 4') // 14
math.evaluate ('(2 + 3) * 4') // 20
Доступны следующие операторы:
Оператор | Имя | Синтаксис | Ассоциативность | Пример | Результат |
---|---|---|---|---|---|
( , ) | Группировка | (х) | Нет | 2 * (3 + 4) | 14 |
[ , ] | Матрица, Индекс | [...] | Нет | [[1,2], [3,4]] | [[1,2], [3,4]] |
{ , } | Объект | {...} | Нет | {a: 1, b: 2} | {a: 1, b: 2} |
, | Разделитель параметров | x, y | Слева направо | макс (2, 1, 5) | 5 |
. | Оформление собственности | obj.prop | Слева направо | obj = {a: 12}; obj.a | 12 |
; | Разделитель выписок | х; г | Слева направо | а = 2; b = 3; а * б | [6] |
; | Разделитель рядов | [х; y] | Слева направо | [1,2; 3,4] | [[1,2], [3,4]] |
\ п | Разделитель выписок | х \ п у | Слева направо | a = 2 \ n b = 3 \ n a * b | [2,3,6] |
+ | Добавить | х + у | Слева направо | 4 + 5 | 9 |
+ | Одинарный плюс | + y | Справа налево | +4 | 4 |
– | Вычесть | х - у | Слева направо | 7–3 | 4 |
– | Унарный минус | -лет | Справа налево | -4 | -4 |
* | Умножить | х * у | Слева направо | 2 * 3 | 6 |
.* | Поэлементное умножение | x. * Y | Слева направо | [1,2,3]. * [1,2,3] | [1,4,9] |
/ | Разделить | х / у | Слева направо | 6/2 | 3 |
./ | Поэлементное деление | х. / У | Слева направо | [9,6,4] ./ [3,2,2] | [3,3,2] |
% , мод. | Модуль | x% y | Слева направо | 8% 3 | 2 |
^ | Мощность | х ^ у | Справа налево | 2 ^ 3 | 8 |
.[3,3] | [8,27] | ||||
' | транспонировать | г | Слева направо | [[1,2], [3,4]] ' | [[1,3], [2,4]] |
! | Факториал | л! | Слева направо | 5! | 120 |
и | Побитовое и | x & y | Слева направо | 5 и 3 | 1 |
~ | Побитовое, а не | ~ x | Справа налево | ~ 2 | -3 |
| | Побитовое или | x | г | Слева направо | 5 | 3 | 7 |
^ | | Побитовый xor | x ^ | г | Слева направо | 5 ^ | 2 | 7 |
<< | Левый сдвиг | x << y | Слева направо | 4 << 1 | 8 |
>> | Правый арифметический сдвиг | x >> y | Слева направо | 8 >> 1 | 4 |
>>> | Логический сдвиг вправо | 900 10 x >>> y | Слева направо | -8 >>> 1 | 2147483644 |
и | логический и | x и y | Слева направо | истина и ложь | ложный |
не | Логическое не | не | Справа налево | не соответствует действительности | ложный |
или | логический или | x или y | Слева направо | правда или ложь | правда |
xor | Логический xor | x xor y | Слева направо | true xor истина | ложный |
= | Переуступка | х = у | Справа налево | а = 5 | 5 |
? : | Условное выражение | х? y: z | Справа налево | 15> 100? 1: -1 | -1 |
: | Диапазон | x: y | Справа налево | 1: 4 | [1,2,3,4] |
|