Об'єкт Date
У JavaScript можна використовувати деякі наперед задані об'єкти: Date, Array, Math тощо. Розглянемо об'єкт Date. Він дозволяє працювати і з датою, і з часом. Почнемо з прикладу подання на екрані поточного часу. Спочатку потрібно створити новий об'єкт Date за допомогою вказівки new:
today= new Date()
Таким чином створено новий об'єкт Date з назвою today. Якщо, як у поданому прикладі, при створенні цього об'єкту не було вказано дату й час, то будуть запозичені дата й час, поточні на момент виконання вказівки.
До об'єкту Date можна застосувати певні методи: getHours(), setHours(), getMinutes(), setMinutes(), getMonth(), setMonth() тощо. Їхній зміст очевидний навіть при поверхневому знанні англійської мови.
Для задання дати й часу маємо викликати вказівкою new метод Date() за таким форматом:
Date(рік, місяць, день, години, хвилини, секунди)
Зауважте: нумерація місяців — з нуля для січня. Наприклад, для створення об'єкту Date, у якому задано 27 листопада 2011 року 17 годин 35 хвилин і 23 секунди, потрібно записати таке:
today= new Date(2011, 10, 27, 17, 35, 23)
Напишемо скрипт, який виводить поточні дату й час таким чином:
Код має такий вигляд:
<script language="JavaScript">
<!-- hide
now= new Date();
document.write("Час: " + now.getHours() + ":" + now.getMinutes() + "<br>");
document.write("Дата: " + now.getDate() + "." +(now.getMonth() + 1) + "."
+ (1900 + now.getYear()));
// -->
</script>
Зауважте: метод getYear() повертає кількість років, які минули з 1900 року. Тому до його результату додаємо 1900. Збільшення на 1 результату getMonth() обумовлено вже згаданою нумерацією місяців — з нуля для січня.
Поданий скрипт може призвести до подання кількості хвилин однією цифрою. Наприклад, 12:3 зимість звичного 12:03.Розв'язання цього питання дивіться у наступному прикладі годинника:
Код має такий вигляд:
<html><head>
<script Language="JavaScript"> <!-- hide
var timeStr, dateStr;
function clock()
{
now= new Date();
// час
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
timeStr = "" + hours;
timeStr += ((minutes < 10) ? ":0" : ":") + minutes;
timeStr += ((seconds < 10) ? ":0" : ":") + seconds;
document.clock.time.value = timeStr;
// дата
date= now.getDate();
month= now.getMonth()+1;
year= now.getYear();
dateStr= "" + date;
dateStr+= ((month < 10) ? ".0" : ".") + month;
dateStr+= "." + year;
document.clock.date.value = dateStr;
Timer= setTimeout("clock()",1000);
} // -->
</script></head>
<body onLoad="clock()">
<form name="clock">
Час: <input type="text" name="time" size="8" value=""><br>
Дата: <input type="text" name="date" size="8" value="">
</form>
</body></html>
Тут для щосекундного корегування вихідних даних використано метод setTimeout() при щосекундному створенні нового об'єкту Date, куди заносимо поточні час і дату.
Фукцію clock() викликано одразу по завантаженні сторінки програмою опрацювання подій onLoad (див. тег <body>). HTML-сторінка містить два елементи форми для введення тексту. Функція clock() записує в обидва ці елементи у коректному форматі поточні час і и дату. Для цього використано рядкові змінні timeStr и dateStr.
Проблему запису двома цифрами одноцифрового числа з нулем попереду вирішено таким чином:
timeStr+= ((minutes < 10) ? ":0" : ":") + minutes;
Це стислий запис звичнішого коду:
if (minutes < 10) timeStr+= ":0" + minutes
else timeStr+= ":" + minutes;
Об'єкт Array
Починаючи з версії 1.1 мови JavaScript, можна використовувати об'єкт Array. Для створення нового масиву myArray потрібно записати: myArray= new Array()
Нумерацію елементів починають з нуля, номер вказують у квадратних дужках одразу після назви масиву. Елементам масиву можна надати різних за типом величин:
myArray[0]= 2011;
myArray[1]= "ua";
Розмiр масиву встановлюється динамічно. Після запису myArray[2011]= "kiev" размір масиву буде встановлено на 2012 елементів. Розмір масиву може лише збільшуватися. Тому користуватися ним потрібно економно.
Запис:
перший рядок
другий рядок
третій рядок
можна отримати у результаті виконання такого коду:
<script language="JavaScript"> <!-- hide
myArray= new Array();
myArray[0]= "перший рядок";
myArray[1]= "другий рядок";
myArray[2]= "третій рядок";
for (var i= 0; i< 3; i++)
{
document.write(myArray[i] + "<br>");
} // -->
</script>
Спочатку створено новий масив з назвою myArray. Потім першим трьом його елементам надано відповідних величин. Після цього у циклі тричі виконано вказівку document.write(myArray[i] + "<br>");. За допомогою змінної i ведуть відлік циклів от 0 до 2. Таким чином тричі отримано виклик document.write(), що еквівалентно виконанню такого коду:
document.write(myArray[0] + "<br>");
document.write(myArray[1] + "<br>");
document.write(myArray[2] + "<br>");
Об'єкт Math
Для здійснення математичних розрахунківможна скористатися властивостями й методами об'єкту Math.
Сталі — властивості об'єкту Math — у коді Java Script позначають таким чином: Math.назва властивості.
Властивості об'єкту Math такі:
E — число Ейлера e — ;
PI — число Піфагора π — ;
LN2 — натуральний логарифм числа 2, тобто ln 2 — ;
LN10 — натуральний логарифм числа 10, тобто ln 10 — ;
LOG2E — логарифм числа e за основою 2 — ;
LOG10E — логарифм числа e за основою 10 — ;
SQRT2 — арифметичний корінь квадратний з 2 — ;
SQRT1_2 — арифметичний корінь квадратний з 1/2 — .
Функції — методи об'єкту Math — у коді Java Script позначають таким чином:
Math.назва методу(назва змінної-аргумента).
Методи об'єкту Math такі:
abs — абсолютна величина (модуль);
acos — арккосинус;
asin — арксинус;
atan — арктангенс;
ceil — найменше ціле число, що не менше за аргумент;
cos — косинус;
exp — експонента;
floor — найбільше ціле число, що не перевищує аргумент;
log — натуральний логарифм;
max — найбільша з двох величин;
min — найменша з двох величин;
pow — результат піднесення першого аргументу до степеня, що збігається з другим аргументом;
random — випадкове число з (0; 1);
round — округлення величини аргумента до найближчого цілого числа;
sin — синус;
sqrt — арифметичний корінь квадратний;
tan — тангенс.
Наприклад, виклик Math.random() призводить до породження випадкового числа з проміжку [0;1]. Один з можливих результатів виклику
<script language="JavaScript"><!-- hide
document.write(Math.random())
</script>
такий:
. При кожному новому завантаженні тут буде з'являтися нове число.
Об'єкт Number
В доповнення до властивостей об'єкту Math доступ до деяких властивостей проходить через об'єкт Number див. таку таблицю.
Властивість | Опис |
MAX_VALUE | Найбільше доступне додатне число, приблизно 1.79E+308. Величина може змінитися залежно від системи |
MIN_VALUE | Найменше доступне додатне число, приблизно 2.22E-308. Величина може змінитися залежно від системи |
NaN | Спеціальна нечислова величина, від англійською not a number — не число |
POSITIVE_INFINITY | Довільне додатне число, яке більше за Number.MAX_VALUE, конвертується у цю величину і подається як +Inf |
NEGATIVE_INFINITY | Довільне від'ємне число, яке менше за Number.MAX_VALUE, конвертується у цю величину і подається як -Inf. |
Number.NaN — особлива властивість — нечислова величина (англійською not a number). Наприклад, ділення на нуль чи спроба використати рядок як число повертає Number.NaN. При порівнянні ця властивість не дорівнює ні жодному числу, ні самій собі. Тому не варто використовувати порівняння з Number.NaN. Для цього використовують функцію isNaN().
Об'єкт String
Об'єкт String (текстовий рядок) має вбудовані методи, які застосовують при роботі з рядками. Одним з таких методів є substring, що повертає частину рядка. Він має два аргументи числового типу, що вказують на межі частини рядка. Щоб показати, як саме, покажемо, як працює такий код:
<script language="JavaScript"><!-- hide document.write("0123456789".substring(1,5)); document.write("<BR>"); document.write("0123456789".substring(9,6)); // --> </script>
У результаті маємо:
Ще одна властивість об'єкту String — властивість довжини length рядка, величина якого дорівнює кількості символів у рядку.