В jаvascript об'єкт Math не потрібно створювати, він існує як компактний математичний співпроцесор браузера. Math завжди доступний в будь-якому місці jаvascript коду. У нього включені основні константи у вигляді властивостей і популярні математичні функції у вигляді методів. jаvascript Math - це традиційна математика, повсякденно необхідна, доступна та проста у використанні.
Властивості Math
Основні математичні константи: підстава натурального логарифма (E); натуральний логарифм (LN2 LN10); логарифм числа (LOG2E, LOG10E); число Пі (PI); квадратні корені (SQRT1_2 SQRT2). Для звернення до властивості глобального об'єкта jаvascript Math слід вказати ім'я об'єкта і ім'я потрібного властивості. Наприклад,
var exp = Math.E; //масив е ~ 2718 var n314 = Math.PI; //число Пі ~ 31415 Зазвичай, змінні не описують заздалегідь, а використовують властивості об'єкта jаvascript Math безпосередньо у виразі. Проте, алгоритм може вимагати власного підходу. Математичні константи у вигляді властивостей об'єкта Match працюють в будь-яких синтаксичних конструкціях мови jаvascript.
Додатне число і рядок
Якщо потрібно отримати абсолютне значення числа, використовується 'abs' - функція, яка робить будь-яке число позитивним. Math.abs('-65'); //= 65 Math.abs(19); //= 19 Math.abs(0); //= 0
Для перетворення числа в рядок символів по конкретному основи функція 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 або стилі конкретних елементів доводиться формувати на льоту або в процесі роботи сайту. Використання об'єкта jаvascript Math можна зустріти навіть на найпростішому сайті. Важливо. Вираз: var iPos = Math.abs('-13'); не спрацює як треба. Результат буде 'NaN'. Поділ цілої і дробової частини у jаvascript позначається крапкою, а не комою. Але вираз: var iPos = ('10033').toString(); дасть результат: '10033'. В даному випадку написано в стилі jаvascript Math, але результат формується як рядок в рядок. У jаvascript коді часто веде до серйозних помилок не конкретна недоробка алгоритму розробником, а неналежний облік особливості мови відсікати все зайве, що не передбачено або не вкладається в синтаксис .
Функції округлення дійсних чисел
Можливості об'єкта jаvascript Math по округленню значень і результатів обчислення виразів дуже важливі. Вони тут не так широко представлені, як в інших мовах, але їх функціоналу цілком достатньо для практично будь-яких завдань. Загальновідомо, що в правилах стилів CSS, властивості об'єктів DOM та інших елементах потрібні числові аргументи. У деяких випадках потрібні значення з дробовою частиною в одну або декілька цифр. Крім звичного (математичного) округлення - функції Math.round, jаvascript пропонує ще два варіанти: в більшу сторону (ceil) і у меншу сторону (floor).
Як правило, числові дані мають бути цілочисельними або мати певну кількість цифр після коми. Коли необхідно регулювати положення десяткової крапки в числі зручно використовувати класичну ідею ділити (множити) потрібне число ділення на 101001000 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(111*10); //=11 В останньому прикладі можливості функції math floor jаvascript код використовує дещо некоректно. Хоча багато залежить від логіки конкретної задачі. Регулювати положення десяткової крапки множенням або діленням на 101001000 найзручніше після округлення, а не перед ним. Важливо. При використанні чисел в якості аргументів, часто помилки виникають саме з-за того, що результат обчислення, наприклад, координат або розмірів блоків, має речовий або рядкове значення, яке не перетворюється на число.
Математичні функції
Крім тригонометричних функцій: обчислення синуса (sin), косинуса (cos) і тангенса (tan), об'єкт Math пропонує арксинус (asin), косинуса (acos) і тангенс (atan). Можна також обчислити експоненту (exp) - "e" у мірі, обчислити натуральний логарифм числа (log), витягти квадратний корінь числа (sqrt) і звести число в потрібну ступінь (pow). Використання математичних функцій подібно round, floor і ceil, за винятком функції pow, яка має два аргументи: перший - число, друга - ступінь, в яку його потрібно звести. Зрозуміло, тригонометричні функції - хороша складова об'єкта jаvascript Math, але не слід захоплюватися. jаvascript - це не математична машина, а мова браузера, турбота якого обслуговувати сторінки, об'єкти DOM, виконувати масу рутинної роботи.
Мета об'єкта лежить в наданні достатнього математичного апарату для виконання конкретної роботи, а не для розрахунків інтегралів, польотів на Місяць і створення унікальної анімації. Багато сайтів, які захоплюються математикою, дуже повільно працюють.
Мінімальне, максимальне і випадкове значення
Реалізація функції min та max передбачає різну кількість порівнюваних чисел. Обидві функції беруть певну кількість аргументів: не обов'язково тільки два аргументи. Результатом min буде мінімальне з переданих функції чисел, результатом max - максимальне. Якщо хоча б один аргумент не визначено, результатом буде 'NaN'. Функція random генерує псевдовипадкове число від 0 до 1. Її застосування неймовірно широко. Тут використовується функція padl(), яка доповнює число нулем, якщо в ньому одна цифра. У результаті виклику viuq() буде отримано щодо випадкове число, але досить унікальне, щоб не повторитися протягом одного дня. Якщо ж необхідна велика унікальність, можна двічі викликати функцію і з'єднати отримані значення або розраховувати число з врахуванням секунд. Надати будь-якого елементу сторінки, імені файлу або картинки, сесії відвідувача, контролювати безпеку за допомогою функції random дуже швидко і зручно.