В JS Math — это встроенный объект с несколькими десятками методов. Сегодня мы сосредоточимся на наиболее распространенных из них, и я собираюсь предоставить вам простые для понимания примеры.

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

  1. Math.ceil() — название метода происходит от слова «потолок». Думайте «вверх», что означает, что мы округлим число в большую сторону. Будьте осторожны с отрицательными числами.

Math.ceil(5.1) // 6

Math.ceil(0.1) // 1

Math.ceil(0) // 0

Math.ceil(-0.1) // -0

Math.ceil(-3.9) // -3

2. Math.floor() — название этого метода происходит от слова «этаж». Думайте «вниз», что означает, что мы округлим число в меньшую сторону. Будьте осторожны с отрицательными числами.

Math.floor(5.1) // 5

Math.floor(0.1) // 0

Math.floor(0) // 0

Math.floor(-0.1) // -1

Math.floor(-3.9) // -4

3. Math.round() — этот метод возвращает число, округленное до ближайшего целого числа (помните школьные уроки математики?).

Math.round(5.1) // 5

Math.round(0,5) // 1

Math.round(0) // 0

Math.round(-0.1) // -0

Math.round(-3.9) // -4

4. Math.trunc() — название этого метода происходит от слова 'truncate', и он просто удаляет дробные числа (не путайте с округлением, он ничего не округляет) :

Math.trunc(23.95) // 23

Math.trunc(-0,88) // -0

5. Math.max() — принимает в качестве параметра массив целых чисел и возвращает наибольшее из них.

Math.max(10, 20, 100, 65,9) // 100

Math.max(-10, -20, -100, -65,9) // -10

Math.max(0, -1, 1, -1,1, 1,1) // 1,1

6. Math.min() — принимает в качестве параметра массив целых чисел и возвращает наименьшее из них.

Math.min(10, 20, 100, 65,9) // 10

Math.min(-10, -20, -100, -65,9) // -100

Math.min(0, -1, 1, -1,1, 1,1) // -1,1

7. Math.random() — этот метод помогает найти случайное число, но не делает этого напрямую. Позвольте мне объяснить это лучше. Сам метод не нуждается в аргументе и возвращает десятичное число от 0 (включительно) до 1 (исключительно):

Math.random() // 0,26645625999009925

Если вы затем умножите его на другое число, вы получите случайное число между этим самым числом и 0:

Math.random()*10 // 6.153651095855553

8. Math.sqrt() — название этого метода происходит от «квадратный корень» и возвращает именно это:

Math.sqrt(81) // 9

Если аргумент отрицательный, результатом будет NaN:

Math.sqrt(-81) // NaN

9. Math.pow() — название этого метода происходит от слова «степень» и принимает массив из 2-х параметров: основание (первое число) и показатель степени (второе число). Это когда у вас есть что-то вроде этого:

Math.pow(3, 5) // 243

Это равно 3*3*3*3*3.

Здесь нужно помнить несколько важных вещей.

  • Если показатель степени равен 0, результатом всегда будет 1, независимо от основания:

Math.pow(-3, 0) // 1

  • Если основание отрицательное и четное, а показатель степени положительный, результат будет положительным:

Math.pow(-3, 4) // 81

  • Если основание отрицательное и нечетное, а показатель степени положительный, результат будет отрицательным:

Math.pow(-3, 5) // -243

  • Если основание отрицательное, а показатель степени положительный десятичный, результатом будет NaN:

Math.pow(-3, 1.5) // NaN

  • Это не так, если база положительна:

Math.pow(3, 1.5) // 5.196152422706632

  • Если показатель степени отрицательный, результат будет содержать число после . :

Math.pow(3, -1,5) // 0,19245008972987526

  • Если основание отрицательное, а показатель степени отрицательный, вы также получите набор чисел после . :

Math.pow(-3, -1) // -0,3333333333333333

  • Помните, что отрицательное основание и отрицательный десятичный показатель приведут к NaN:

Math.pow(-3, -1.5) // NaN

МОЙ БОГ! Сумасшедший Math.pow(), верно?

10. Math.PI — это не метод, а свойство (которое может быть полезным, поэтому я решил включить его в список) и возвращает 3.141592653589793:

Math.PI * 2 // 6.283185307179586

Надеюсь, эта статья была полезной и, возможно, даже научила вас чему-то новому. :)

Какие еще методы (или свойства) JS Math вы часто используете в своей работе?