HTML, Excel, Word, SEOОсновы JavaScript ⇒ Математика в JavaScript

ОСНОВЫ JavaScript

Учебник JavaScript
·Знакомство с JS. Переменные, операторы, операции
·Функции
·Модель HTML документа
·Иерархия документов в бразуере
·Формы
·Окна и фреймы
·Ссылки, заголовок, статус
·События
·События клавиатуры и мыши
·События. Таймер
·Стили. Управление стилями
·Слои и блоки. Управление видимостью
·Объекты JS
·Внешние объекты
·Внутренние объекты
·Массивы
·Регулярные выражения
·Математика в JS
·Пример простого калькулятора
·Дата и время
·Cookies и хранение состояния
·Немного об AJAX
·Работа с WebMoney



Математика в JavaScript


Автор: Артемьев Сергей Игоревич ICQ: 438856621 email: _spin_@bk.ru

Арифметические операторы и приведение типов

JavaScript поддерживает следующие арифметические операторы:

+ (плюс) Сложение

2 + 8

7 + 3

10

10

- (минус) Вычитание

2 - 8

7 - 3

-6

4

* (звёздочка) Умножение

2 * 8

7 * 3

16

21

/ (слэш) Обычное деление

8 / 2

7 / 3

4

2.3333

% (процент) Деление по модулю

8 % 2

7 % 3

0

1

++ (два плюса) Единичный инкремент

8++

7++

9

8

-- (два минуса) Единичный декремент

8--

7--

7

6

Интересная особенность JavaScript - возможность выполнять арифметические операции над переменными различного типа. В этом случае интерпретатор самостоятельно выполняет приведение типов и выполняет указанную операцию. В процессе ведения типов используются следующие правила:

1. Если один из операндов - строка, то все остальные операнды приводятся к строковому виду.

var1 = "Дядя"
var2 = "Ваня"
result = var1 + " " + var2
// result = "Дядя Ваня"
mixed = var2 + 100
// mixed = "Ваня100"		

2. Все логические операнды приводятся к числовому виду, кроме случаев, когда все операнды в выражении логические. При этом true приводится к "1", а false - к "0". При сочетании логических операндов со строками - все операдны переводятся в текстовый вид.

var1 = true
var2 = true
result = var1 + var2
// result = 2
mixed = var2 + 100
// mixed = 101	
var3 = "строка:"
str = var3 + var1
// str = "строка:true"

3. Если приведение типов выполнить не удалось - результатом выражения будет "NaN" (например, при попытке разделить строку на что-либо).

var1 = "Дядя"
var2 = "Ваня"
result = var1 / var2
// result = "NaN"
mixed = var2 * true
// mixed = "NaN"		

Однако на начальном этапе лучше воздержаться от приведения типов и фокусов с преобраованием результатов. Это избавит вас от значительного числа ошибок.

Объект Math

Объект Math содержит основные математические константы и стандартные математические функции. Наиболее часто используемые приведены в таблице:

Свойства
LN10 Значение натурального логарифма числа 10
LN2 Значение натурального логарифма числа 2
PI Значение числа Пи
Методы
abs(число) Возвращает абсолютное значение числа (т.е. число без учёта его знака)
ceil(число) Откругляет число до ближайшего большего целого (округление "вверх")
exp(число) Возвращает число "e" в степени "число"
floor(число) Откругляет число до ближайшего меньшего целого (округление "вниз")
max(число1, число2) Возвращает большее из двух чисел
min(число1, число2) Возвращает меньшее из двух чисел
pow(число1, число2) Возвращает "число1", возведённое в степень "число2"
random() Возвращает случайное число в диапазоне от 0 до 1
round(число) Округляет число в соответствии со стандартными правилами округления
sqrt(число) Возвращает квадратный корень числа.

Из всех перечисленных функций имеет смысл дополнительно пояснить только ceil(), floor() и round(). Рассмотрим их отличия на примере:

num = 1.222
// ближайшее целое "вниз" - 1
// ближайшее целое "вверх" - 2
// арифметически откругляется до 1


alert(Math.ceil(num))
alert(Math.floor(num))
alert(Math.round(num))

// получим три сообщения: 2, 1, 1

num = 1.777
// ближайшее целое "вниз" - 1
// ближайшее целое "вверх" - 2
// арифметически откругляется до 2


alert(Math.ceil(num))
alert(Math.floor(num))
alert(Math.round(num))

// получим три сообщения: 2, 1, 2



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

Чаще всего математика на сайтах используется для создания различных калькуляторов или расчёта положения элементов интерфейса. В примере к данному уроку мы рассмотрим скрипт для создания простого калькулятора.

 



В начало страницы



В начало страницы