JavaScript - Математические операции

Содержание:
  1. Основные свойства объекта Math
  2. Основные методы объекта Math
  3. Примеры использования объекта Math
  4. Комментарии

На этом уроке мы познакомимся с объектом языка JavaScript Math, а также научимся его использовать на практике.

Объект Math состоит из свойств и методов. Свойства представляют собой математические константы π, e, ln10 и другие, которые можно использовать в вычислениях. Методы же объекта Math предназначены для выполнения различных математических операций над числами.

Создавать объекты Math с помощью оператора new не требуется. При этом для обращения ко всем методам и свойствам этого объекта производится через название класса.

Math.название_свойства_или_метода

Основные свойства объекта Math

  • Math.E – константа e;
  • Math.LN2 – Натуральный логарифм 2;
  • Math.LN10 – Натуральный логарифм 10;
  • Math.LOG2E – Натуральный логарифм числа e по основанию 2;
  • Math.LOG10E - Натуральный логарифм числа e по основанию 10;
  • Math.PI – константа π;
  • Math.SQRT1_2 – корень квадратный из ½;
  • Math.SQRT2 – корень квадратный из 2.

Основные методы объекта Math

  • Тригонометрические функции: Math.sin(параметр), Math.cos(параметр), Math.tan(параметр), Math.asin(параметр), Math.acos(параметр), Math.atan(параметр);
  • Модуль числа: Math.abs(параметр);
  • Преобразование дробных чисел в целые:
    • Math.ceil(параметр) – округление в большую сторону;
    • Math.floor(параметр) – округление в меньшую сторону;
    • Math.round(параметр) – математическое округление, т.е. когда дробная часть числа больше или равна 0.5, то оно округляется в большую сторону, а иначе в меньшую сторону;
    • Math.trunc(параметр) – отбрасывает дробную часть числа.
  • Вычисление ex: Math.exp(параметр);
  • Вычисление натурального логарифма числа, указанного в качестве параметра: Math.log(параметр);
  • Вычисление xy: Math.pow(x,y);
  • Вычисление корня квадратного из числа: Math.sqrt(параметр);
  • Определение знака числа: Math.sign(параметр);
  • Генерация случайного числа с плавающей точкой от 0 (включая 0) до 1 (не включая 1): Math.random();
  • Возвращения максимального значения из чисел, указанных в качестве параметров: Math.max(параметр_1,параметр_2,...)
  • Возвращения минимального значения из чисел, указанных в качестве параметров: Math.min(параметр_1,параметр_2,...)

Примеры использования объекта Math

  • Вычислить длину окружности, имеющей радиус 50.

    JavaScript
    var radius = 50;
    var lengthCircle = 2*Math.PI*radius;
    document.write("Длина окружности равна " + lengthCircle.toFixed(2));
    Пример на языке JavaScript
  • Найти максимальное число.

    JavaScript
    var max = Math.max(-65,8,6,1,90,-4,2);
    document.write("Максимальное число равно " + max.toString());
    Пример на языке JavaScript
  • Вывести случайное число от 1 до 6.

    JavaScript
    var numberRandom = Math.round((Math.random()*5+1));
    document.write("Случайное число равно " + numberRandom.toString());
    Пример на языке JavaScript

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

DeKn
DeKn

Добрый день! В пункте про генерацию случайного числа Math.random() указано что генерация от 0 до 1, без уточнения что 1 не включается. Это может повлиять на вычисления. Спасибо!

Александр Мальцев
Александр Мальцев

Здравствуйте! Спасибо, добавил уточнения для Math.random().

Аноним
Аноним
Хорошо, работает.
Спасибо за ваше внимание.
Аноним
Аноним
Спасибо большое, отличные уроки.
Как захватить число введённое пользователем, принять его как «потолок» случайных чисел?
Александр Мальцев
Александр Мальцев
Спасибо.
Можно сделать так:
<!-- Элемент, содержащий число пользователя --> 
<input type="text" id="numberUser">
<!-- Информация о случайном числе -->
<p>"Потолок" случайного числа: <span id="maxRandom"></span></p>
<p>Случайное число: <span id="randomNumber"></span></p>
<!-- Кнопка, выводящая случайное число -->
<button id="randomButton">Выдать случайное число</button>

<script>
// после загрузки DOM дерева страницы
document.addEventListener("DOMContentLoaded", function(){
  //получить элемент кнопку (randomButton)
  var randomButton = document.getElementById("randomButton");
  //при нажатию на кнопку выполнять следующее...
  document.addEventListener("click", function(){
    //получить число пользователя (потолок случайного числа)
    var numberUser = parseInt(document.getElementById("numberUser").value);
    //вывести потолок случайного числа
    document.getElementById("maxRandom").textContent=numberUser;
    // генерируем случайное число
    randomNumber = Math.round(Math.random()*numberUser);
    //вывести случайное число
    document.getElementById("randomNumber").textContent=randomNumber;
  });
});
</script>
Аноним
Аноним
Здравствуйте! можно ли сделать допустим число от 1 до 1000 генерировало случайным образом и каждые 2 минуты обновляло в фоновом режиме то есть работало как часы?
Александр Мальцев
Александр Мальцев
Конечно можно например вот так:
// переменная, которая будет хранить случайное число
var randomNumber;
// запускаем выполнение функции каждые 2000мс, т.е. 2 сек.
setInterval(function() { 
  // генерируем случайное число
  randomNumber = Math.floor(Math.random()*1000) + 1;
  //например, будем выводить это число в консоль
  console.log(randomNumber);
}
,2000);
Аноним
Аноним
Спасибо за ответ но вы меня не поняли, мне нужно чтобы число не прибавлялось к числу а менялось на другое сгенерированное число.
то есть допустим есть число 4783658 через каждые две секунды выводило другое число 478695 а старое удалялось и так далее, возможно такое?
Александр Мальцев
Александр Мальцев
А оно сейчас как? К чему оно прибавляется?
Если Вам не нравится консоль, то можно вывести прямо на страницу, например в элемент p:
<p id="random"></p>
<script>
window.onload=function() {
  // переменная, которая будет хранить случайное число
  var randomNumber;
  // запускаем выполнение функции каждые 2000мс, т.е. 2 сек.
  setInterval(function() { 
    // генерируем случайное число
    randomNumber = Math.floor(Math.random()*1000) + 1;
    // выводим число на страницу в элемент p
    document.getElementById('random').textContent = randomNumber;
  }
  ,2000);
};
</script>
Аноним
Аноним
Спасибо большое! как раз то что нужно.