В JavaScript об'єкт Math не потрібно створювати,він існує як компактний математичний співпроцесор браузера. Math завжди доступний в будь-якому місці JavaScript коду. У нього включені основні константи у вигляді властивостей і популярні математичні функції у вигляді методів.
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
Позитивне число і рядок
Якщо потрібно отримати абсолютне значення числа, використовується "abs" - функція, яка робить будь-яке число позитивним.
- Math.abs ( "- 65"); // = 65
- Math.abs (19); // = 19
- Math.abs (0); // = 0
- 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
В останньому прикладі можливості функції mathfloor javascript код використовує дещо некоректно. Хоча багато що залежить від логіки конкретного завдання. Регулювати положення десяткового дробу множенням або діленням на 10, 100, 1000, ... найзручніше після округлення, а не перед ним.
Важливо.При використанні чисел в якості аргументів, часто помилки виникають саме через те, що результат обчислення, наприклад, координат або розмірів блоків, має речовий або рядкове значення, яка не перетворюється в число.
математичні функції
Крім тригонометричних функцій: обчислення синуса (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 дуже швидко і зручно.