Содержание

Math — Веб-технологии для разработчиков

EChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
LN2Chrome Полная поддержка
1
Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка
1
Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs
Полная поддержка
0.1.100
LN10Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка
3
Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка
1
Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
LOG2EChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка
3
Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android
Полная поддержка
10.1
Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
LOG10EChrome Полная поддержка 1Edge Полная поддержка
12
Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка
18
Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
PI
Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android
Полная поддержка
1
Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
SQRT1_2Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
SQRT2Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
absChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
acosChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
acoshChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 25Opera Android Полная поддержка 25Safari iOS Полная поддержка 8Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
asinChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
asinhChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 25Opera Android Полная поддержка 25Safari iOS Полная поддержка 8Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
atanChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
atan2Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 4Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
atanhChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 25Opera Android Полная поддержка 25Safari iOS Полная поддержка 8Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
cbrtChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 25Opera Android Полная поддержка 25Safari iOS Полная поддержка 8Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
ceilChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
clz32Chrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 31IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 7WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 31Opera Android Полная поддержка 25Safari iOS Полная поддержка 7Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
cosChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100

Math | JavaScript справочник

МетодОписание
Chrome

Firefox

Opera

Safari

IExplorer

Edge
abs()Вычисляет и возвращает абсолютное значение переданного числа. ДаДаДаДаДаДа
acos()Вычисляет и возвращает арккосинус переданного числа. ДаДаДаДаДаДа
acosh()Вычисляет и возвращает гиперболический арккосинус переданного числа. 38.025.025.08.0НетДа
asin()Вычисляет и возвращает арксинус переданного числа. ДаДаДаДаДаДа
asinh()Вычисляет и возвращает гиперболический арксинус переданного числа. 38.025.025.08.0НетДа
atan()Вычисляет и возвращает арктангенс переданного числа. ДаДаДаДаДаДа
atan2()Вычисляет и возвращает угол между осью X и точкой. ДаДаДаДаДаДа
atanh()Вычисляет и возвращает гиперболический арктангенс переданного числа. 38.025.025.08.0НетДа
cbrt()Вычисляет и возвращает кубический корень переданного числа. 38.025.025.08.0НетДа
ceil()Вычисляет и возвращает наименьшее целое число, которое больше или равно переданному числу (округляет число вверх). ДаДаДаДаДаДа
clz32()Возвращает количество ведущих нулевых битов в 32-битном двоичном представлении числа. 38.031.025.08.0НетДа
cos()Вычисляет и возвращает косинус переданного числа ДаДаДаДаДаДа
cosh()Вычисляет и возвращает гиперболический косинус переданного числа. 38.025.025.08.0НетДа
exp()Вычисляет и возвращает степень числа Е (Ex, где x — аргумент, а E — основание натурального логарифма). ДаДаДаДаДаДа
expm1()Вычисляет и возвращает степень числа Е минус 1 (Ex-1, где x — аргумент, а E — основание натурального логарифма). 38.025.025.08.0НетДа
floor()Вычисляет и возвращает наибольшее целое число, которое меньше или равно переданному числу (округляет число вниз). ДаДаДаДаДаДа
fround()Вычисляет и возвращает ближайшее число с плавающей запятой одинарной точности, представляющее указанное число. 38.026.025.08.0НетДа
hypot()Вычисляет и возвращает квадратный корень из суммы квадратов своих аргументов. 38.027.025.08.0НетДа
imul()Вычисляет и возвращает результат C-подобного 32-битного умножения двух параметров. 38.020.016.07.0НетДа
log()Вычисляет и возвращает натуральный логарифм переданного числа. ДаДаДаДаДаДа
log1p()Вычисляет и возвращает натуральный логарифм 1 + x для переданного числа x. 38.025.025.08.0НетДа
log2()Вычисляет и возвращает двоичный (по основанию 2) логарифм переданного числа. 38.025.025.08.0НетДа
log10()Вычисляет и возвращает десятичный (по основанию 10) логарифм переданного числа. 38.025.025.08.0НетДа
max()Позволяет найти и возвратить наибольшее из переданных чисел. ДаДаДаДаДаДа
min()Позволяет найти и возвратить наименьшее из переданных чисел. ДаДаДаДаДаДа
pow()Вычисляет и возвращает переданное число x в указанной степени y. ДаДаДаДаДаДа
random()Возвращает псевдослучайное число от 0 до 1. ДаДаДаДаДаДа
round()Возвращает значение переданного числа, округленного до ближайшего целого числа. ДаДаДаДаДаДа
sign()Возвращает знак переданного числа, указывающий на то, является ли число положительным, отрицательным или соответствует значению ноль. 38.025.025.08.0НетДа
sin()Вычисляет и возвращает синус переданного числа. ДаДаДаДаДаДа
sinh()Вычисляет и возвращает гиперболический синус переданного числа. 38.025.025.08.0НетДа
sqrt()Вычисляет и возвращает квадратный корень переданного числа. ДаДаДаДаДаДа
tan()Вычисляет и возвращает тангенс переданного числа. ДаДаДаДаДаДа
tanh()Вычисляет и возвращает гиперболический тангенс переданного числа. 38.025.025.08.0НетДа
trunc()Вычисляет и возвращает целочисленную часть перданного числа, удаляя при этом любые дробные цифры. 38.025.025.08.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

Справочник javascript: Math.pow

Аргументы

base
число
exponent
степень

Описание, примеры


Автор: QAlt (не зарегистрирован), дата: 5 января, 2011 — 09:35

#permalink

Эмммм… это что?
фигня какая-то написана.. где описание? где примеры?


Автор: Гость (не зарегистрирован), дата: 5 января, 2011 — 17:27

#permalink

По-моему, всё предельно ясно. И описание с примером присутствуют, кстати.


Автор: Гость (не зарегистрирован), дата: 5 августа, 2019 — 19:53

#permalink

Объект 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()
19newСоздатьnew Date()
    
17++Постфикс Инкрементi++
17Постфикс Декрементi—
    
16++Префикс Инкремент++i
16Префикс Декремент—i
16!Логический не!(x==y)
16typeofТип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
11inСвойство в объекте«PI» in Math
11instanceofИнстанция объекта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
    
2yieldФункция «Пауза»yield x
1,Запятая5 , 6

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



обширная математическая библиотека для JavaScript и Node.js

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

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. работы Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

обширная математическая библиотека для 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]
.