Математика от JavaScript Math

В JavaScript объект Math не требуется создавать, он существует как компактный математический сопроцессор браузера. Math всегда доступен в любом месте JavaScript кода. В него включены основные константы в виде свойств и популярные математические функции в виде методов.

JavaScript Math

JavaScript Math - это традиционная математика, повседневно необходимая, доступная и простая в использовании.

Свойства Math

Основные математические константы:

  • основание натурального логарифма (E);
  • натуральный логарифм (LN2, LN10);
  • логарифм числа (LOG2E, LOG10E);
  • число Пи (PI);
  • квадратные корни (SQRT1_2, SQRT2).

Для обращения к свойству глобального объекта JavaScript Math следует указать имя объекта и имя требуемого свойства. Например,

  • var exp = Math.E; // константа е ~ 2.718
  • var n314 = Math.PI; // число Пи ~ 3.1415

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

Положительное число и строка

Если требуется получить абсолютное значение числа, используется 'abs' - функция, которая делает любое число положительным.

  • Math.abs('-65'); // = 65
  • Math.abs(19); // = 19
  • Math.abs(0); // = 0

math round javascript
Для преобразования числа в строку символов по конкретному основанию функция toString(rdx) применяется непосредственно к переменной. Например,

  • var iPos = (a / b).toString(10);
  • var iPos = (a / b).toString(2);
  • var iPos = (a / b).toString(8);
  • var iPos = (a / b).toString(16).

Здесь параметр 'rdx' - основание системы счисления, соответственно, десятичная, двоичная, восьмеричная и шестнадцатеричная. Вместо выражения '(a / b)' можно указать имя переменной.

Преобразование по основанию системы счисления - очень полезная функция. Когда нужно сформировать код цвета (записать требуемую последовательность шестнадцатеричных цифр) программно, она просто незаменима.

Многие правила CSS или стили конкретных элементов приходится формировать на лету или в процессе работы сайта. Использование объекта JavaScript Math можно встретить даже на самом простом сайте.

Важно. Выражение:

  • var iPos = Math.abs('-1,3');

не сработает как надо.

Результат будет 'NaN'. Разделение целой и дробной части в JavaScript обозначается точкой, а не запятой. Но выражение:

  • var iPos = ('100,33').toString();

даст результат: '100,33'. В данном случае написано в стиле JavaScript Math, но результат формируется как строка в строку.

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

Функции округления вещественных чисел

Возможности объекта JavaScript Math по округлению значений и результатов вычисления выражений очень важны. Они здесь не так обширно представлены, как в других языках, но их функционала вполне достаточно для практически любых задач.

Общеизвестно, что в правилах стилей CSS, свойствах объектов DOM и других элементах требуются целочисленные аргументы. В некоторых случаях требуются значения с дробной частью в одну и или несколько цифр. Помимо привычного (математического) округления - функции Math.round, JavaScript предлагает еще два варианта: в большую сторону (ceil) и в меньшую сторону (floor).

Как правило, численные данные должны быть целочисленными или иметь конкретное количество цифр после запятой. Когда необходимо регулировать положение десятичной точки в числе удобно использовать классическую идею делить (умножать) нужное число деление на 10, 100, 1000...

  • var x = Math.round(20.5); // = 21
  • var x = Math.ceil(1.1); // = 2
  • var x = Math.floor(1.1); // = 1
  • var x = Math.floor(1.11*10); // =11

В последнем примере возможности функции math floor javascript код использует несколько некорректно. Хотя многое зависит от логики конкретной задачи. Регулировать положение десятичной точки умножением или делением на 10, 100, 1000, ... удобнее всего после округления, а не перед ним.

math floor javascript

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

Математические функции

Помимо тригонометрических функций: вычисление синуса (sin), косинуса (cos) и тангенса (tan), объект Math предлагает арксинус (asin), арккосинус (acos) и арктангенс (atan).

Можно также вычислить экспоненту (exp) - "e" в степени, вычислить натуральный логарифм числа (log), извлечь квадратный корень числа (sqrt) и возвести число в нужную степень (pow).

Использование математических функций подобно round, floor и ceil, за исключением функции pow, которая имеет два аргумента: первый - число, второе - степень, в которую его нужно возвести.

Разумеется, тригонометрические функции - хорошая составляющая объекта JavaScript Math, но не следует увлекаться. JavaScript - это не математическая машина, а язык браузера, забота которого обслуживать страницы, объекты DOM, выполнять массу рутинной работы.

Цель объекта лежит в предоставлении достаточного математического аппарата для выполнения конкретной работы, а не для расчетов интегралов, полетов на Луну и создания уникальной анимации. Многие сайты, увлекающиеся математикой, очень медленно работают.

Минимальное, максимальное и случайное значения

Реализация функций min и max предполагает различное количество сравниваемых чисел.

Обе функции принимают некоторое количество аргументов: не обязательно только два аргумента. Результатом min будет минимальное из переданных функции чисел, результатом max - максимальное.

Если хотя бы один аргумент не определен, результатом будет 'NaN'.

Функция random генерирует псевдослучайное число от 0 до 1. Ее применение невероятно широко.

Авторский пример - это не картинка

Здесь используется функция padl(), которая дополняет число нулем, если в нем одна цифра. В результате вызова viuq() будет получено относительно случайное число, но достаточно уникальное, чтобы не повториться в течение одного дня.

Если же необходима большая уникальность, можно дважды вызвать функцию и соединить полученные значения или рассчитывать число с учетом секунд.

Придать любому элементу страницы, имени файла или картинки, сессии посетителя, контролировать безопасность при помощи функции random очень быстро и удобно.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.