Math в JavaScript

Math в JavaScript

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали, что такое Array в Javascript. В данной статье я бы хотел рассказать об объекте Math в Javascript. В языке Javascript, как и во всех других языках программирования, существуют математические операции. Для работы с этими операциями используется объект Math в Javascript. У данного объекта есть методы (функции) и свойства. Как всегда, все методы будем рассматривать на примерах. Начнем с вывода наиболее встречаемых в математике констант: числа "PI" и числа "E":

<html>
<head>
	<meta charset="utf-8"/>
</head>
<body>
<script type="text/javascript">
document.write(Math.PI+"</br>");
document.write(Math.E+"</br>");
</script>
</body>
</html>

В данном случае мы увидим чему равны данные константы. Для того, чтобы не нагромождать статью повторяющимся кодом, буду писать сюда только то, что нужно будет вставить между тегами <script>..</script>.

Случайное число можно задать с помощью метода Math.random(). Причем число задаётся в диапазоне от 0 до 1. Давайте с вами выведем случайное число от 0 до 10:

document.write(10 * Math.random());

В данном случае будет выведено число с плавающей точкой. Допустим мы хотим, чтобы число было целое.

Для этого используется другой метод — Math.round(). Он округляет согласно стандартным правилам округления (если меньше 0,5 — округление в сторону меньшего числа, если >= 0,5 — округление в сторону большего числа):

var chislo = 10 * Math.random();
document.write(chislo + " | Округление = " + Math.round(chislo));

В данном случае вы увидите, что округление идёт по всем правилам.

Если мы хотим принудительно округлить до меньшего числа (кто-то говорит "отбросить дробную часть"), то необходимо использовать метод Math.floor():

var chislo = 10 * Math.random();
document.write(chislo + " | Округление до меньшего = " + Math.floor(chislo));

Метод Math.ceil() округляет до большего:

var chislo = 10 * Math.random();
document.write(chislo + " | Округление до большего = " + Math.ceil(chislo));

Метод Math.pow() используется для того, чтобы возвести число в степень. В качестве первого параметра указывается само число, в качестве второго параметра — степень числа. Давайте на примерах посмотрим результат выполнения данного метода:

document.write(Math.pow(2,4) + "</br>"); //выведет 16
document.write(Math.pow(2,-1) + "</br>"); //выведет 0.5 
document.write(Math.pow(2,-.5) + "</br>"); //выведет 0.7
document.write(Math.pow(2,.5) + "</br>"); //выведет 1.4

Давайте подумаем, почему "2 в (-1)" степени это 0.5. С точки зрения работы с дробями "2 в (-1)" это 1/2 = 0.5. Думаю, с остальными примерами вопросов не должно быть.

Метод Math.max() возвращает наибольшее число из чисел, указанных в методе. Если в скобках ничего не указывать, то будет возращено -Infinity (бесконечность):

document.write(Math.max(2,4,-3,-10,20) + "</br>"); //выведет 20
document.write(Math.max() + "</br>"); //-infinity

Метод Math.min() возвращает наименьшее число из чисел, указанных в методе. Если в скобках ничего не указывать, то будет возращено Infinity (беконечность):

document.write(Math.min(2,4,-3,-10,20) + "</br>"); //выведет -10
document.write(Math.min() + "</br>"); //infinity

Метод Math.sqrt() — это корень квадратный из данного числа, указанного в скобках. Возвращает число, квадрат которого равен числу в скобках. Вроде всё просто, а как-то мудрено написал (ну да ладно). Если передать в качестве параметра отрицательное число, то будет возращено NaN. Пример:

document.write(Math.sqrt(9) + "</br>"); //выведет 3
document.write(Math.sqrt(10) + "</br>"); //выведет 3.16
document.write(Math.sqrt(-10) + "</br>"); //выведет NaN

Чуть не забыл один из основных метод — Math.abs(), который возвращает модуль числа. Кто забыл, что такое модуль числа, напоминаю:
Модуль действительного числа — это абсолютная величина этого числа. Попросту говоря, при взятии модуля нужно отбросить от числа его знак.
Сразу пример:

document.write(Math.abs(10) + "</br>"); //выведет 10
document.write(Math.abs(-10) + "</br>"); //выведет 10

Метод Math.exp(x) возвращает e в степени x, где e=2.71827. Любое число в нулевой степени есть единица. Давайте проверим это:

document.write(Math.exp(0) + "</br>"); //выведет 1, действительно работает.

Метод Math.log(x) возвращает натуральный логарифм числа. Давайте попробуем передать квадрат константы E:

document.write(Math.log(Math.E * Math.E) + "</br>"); //выведет 2, всё правильно.

Возникает вопрос: если есть функция натурального логарифма, то почему нет, к примеру, функции десятичного логарифма (lg(100) = 2). Давайте реализуем данную функцию, используя натуральный логарифм. Из школьной математики loga(b) = ln(b)/ ln(a). Тогда получается, что lg(100) = ln(100) / ln(10):

document.write(Math.log(100) / Math.log(10) + "</br>"); //выведет 2, всё верно

Также существует возможность работы с тригонометрическими функциями. Описывать их все не буду, просто приведу пример:

var x = 0.5;
document.write(Math.sin(x) + "<br>"); //Синус числа
document.write(Math.cos(x) + "<br>"); //Косинус числа
document.write(Math.tan(x) + "<br>"); //Тангенс числа
document.write(Math.asin(x) + "<br>"); //Арксинус числа
document.write(Math.acos(x) + "<br>"); //Арккосинус числа
document.write(Math.atan(x) + "<br>"); //Арктангенс числа.

В качестве домашнего задания разберите все примеры из данной статьи.

В данной статье вы узнали, как работать с объектом Math в Javascript.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *