В
этой главе мы рассмотрим внутренние объекты языка JavaScript. В предыдущей
части рассматривались объекты браузера.
Внутренние объекты
Внутренние объекты не относятся к браузеру или загруженному в
настоящее время HTML-документу. Эти объекты могут создаваться и обрабатываться
в любой JavaScript-прграмме. Они включают в себя простые типы, такие
как строки, а также более сложные объекты, в частности даты.
Имя объекта |
Описание |
Array |
Массив. Не поддерживается в браузерах
старых версий |
Date |
Дата и время |
Math |
Поддержка математических функций |
Object |
Обобщенный объект. Не поддерживается
в старых версиях IE - до 4, NN - до 3. |
String |
Текстовая строка. Не поддерживается
в старых версиях |
Объект array
Array - это многомерное упорядоченное множество объектов, обращение
к объектам ведется при помощи целочисленного индекса. Примерами объектов-массивов
в браузере служат гиперсвязи, метки, формы, фреймы. Массив можно создать
одним из следующих способов:
- используя определенную пользователем функцию для присвоения объекту
многих значений;
- используя конструктор Array();
- используя конструктор Object().
Объекты-массивы не имеют ни методов, ни свойств.
Объект Date
Объект содержит информацию о дате и времени. Этот объект имеет
множество методов, предназначенных для получения такой информации. Кроме
того объекты Date можно создавать и изменять, например путем
сложения или вычитания значений дат получать новую дату. Для создания
объекта Date применяется синтаксис:
dateObj = new Date(parameters)
где dateObj - переменная, в которую будет записан новый объект Date.
Аргумент parameters может принимать следующие значения:
- пустой параметр, например date() в данном случае дата и время
- системные.
- строку, представляющую дату и время в виде: "месяц, день, год,
время", например "March 1, 2000, 17:00:00" Время представлено в
24-часовом формате;
- значения года, месяца, дня, часа, минут, секунд. Например, строка
"00,4,1,12,30,0" означает 1 апреля 2000 года, 12:30.
- целочисленные значения только для года, месяца и дня, например
"00,5,1" означает 1 мая 2000 года, сразу после полночи, так, как
значения времени равны нулю.
Как уже говорилось ранее данный объект имеет множество методов,
свойств объект Date не имеет.
Методы.
Методов много. Кратко опишу методы объекта Date в таблице.
Метод |
Описание метода |
getDate() |
Возвращает день месяца из объекта
в пределах от 1 до 31 |
getDay() |
Возвращает день недели из объекта:
0 - вс, 1 - пн, 2 - вт, 3 - ср, 4 - чт, 5 - пт, 6 - сб. |
getHours() |
Возвращает время из объекта в пределах
от 0 до 23 |
getMinutes() |
Возвращает значение минут из объекта
в пределах от 0 до 59 |
getMonth() |
Возвращает значение месяца из объекта
в пределах от 0 до 11 |
getSeconds() |
Возвращает значение секунд из объекта
в пределах от 0 до 59 |
getTime() |
Возвращает количество миллисекунд,
прошедшее с 00:00:00 1 января 1970 года. |
getTimeZoneoffset() |
Возвращает значение, соответствующее
разности во времени (в минутах) |
getYear() |
Возвращает значение года из объекта |
Date.parse(arg) |
Возвращает количество миллисекунд,
прошедшее с 00:00:00 1 января 1970 года. Arg - строковый аргумент.
|
setDate(day) |
С помощью данного метода устанавливается
день месяца в объекте от 1 до 31 |
setHours(hours) |
С помощью данного метода устанавливается
часы в объекте от 0 до 23 |
setMinutes(minutes) |
С помощью данного метода устанавливаются
минуты в объекте от 0 до 59 |
setMonth(month) |
С помощью данного метода устанавливается
месяц в объекте от 1 до 12 |
setSeconds(seconds) |
С помощью данного метода устанавливаются
секунды в объекте от 0 до 59 |
setTime(timestring) |
С помощью данного метода устанавливается
значение времени в объекте. |
setYear(year) |
С помощью данного метода устанавливается
год в объекте year должно быть больше 1900. |
toGMTString() |
Преобразует дату в строковый объект
в формате GMT. |
toString() |
Преобразует содержимое объекта Date
в строковый объект. |
toLocaleString() |
Преобразует содержимое объекта Date
в строку в соответствии с местным временем. |
Date.UTC(year, month, day [,hours][,mins][,secs]) |
Возвращает количество миллисекунд
в объекте Date, прошедших с с 00:00:00 1 января 1970 года по среднему
гринвичскому времени. |
Разберем пару примеров:
В данном примере приведен HTML-документ, в заголовке
которого выводится текущие дата и время.
<html>
<head>
<script language "JavaScript">
<--
function showh() {
var theDate = new Date();
document.writeln("<table cellpadding=5 width=100% border=0>"
+
"<tr><td width=95%
bgcolor=gray align=left>" +
"<font color=white>Date:
" + theDate +
"</font></td></tr></table><p>");
}
showh();
//-->
</script>
</head>
</html>
Разберем еще один пример. Подобный мы уже разбирали,
когда рассматривали условные операторы, просто вспомним его и немного
изменим: пусть меняются графические бэкграунды в зависимости от времени
суток.
<html>
<script language "JavaScript">
<--
theTime = new Date();
theHour = theTime.getHours();
if (18 > theHour)
document.writeln("<body background='day.jpg' text='Black'>");
else
document.writeln("<body background='night.jpg' text='White'>");
//-->
</script>
</body>
</html>
Вероятно, вы успели заметить, что тег <body>
создается в JavaScript-программе, а закрывается уже в статическом тексте
HTML. Это вполне допустимо, так, как все теги расположены в правильном
порядке. В данном примере предполагается, что файлы рисунков находятся
в том же каталоге. Вы можете здесь задать полный адрес URL.
Объект Math
Объект Math является встроенным объектом языка JavaScript и содержит
свойства и методы, используемые для выполнения математических операций.
Объект Math включает также некоторые широко применяемые математические
константы.
Синтаксис:
Math.propertyName
Math.methodName(parameters)
Свойства
Свойствами объекта Math являются математические
константы:
E |
Константа Эйлера. Приближенное значение
2.718 . . . |
LN2 |
Значение натурального логарифма числа
два. Приближенное значение 0.693 . . . |
LN10 |
Значение натурального логарифма числа
десять. Приближенное значение 2.302 . . . |
LOG2_E |
Логарифм e по основанию 2 (не
вижу смысла в этой константе - это же корень из двух.) Приближенное
значение 1.442 . . .) |
LOG10_E |
Десятичный логарифм e. Приближенное
значение 0.434 . . . |
PI |
Число ПИ. Приближенное значение 3.1415
. . . |
SQRT2 |
Корень из двух, (ыгы, это все равно,
как еще и натуральный логарифм 2*e в степени 1/2) |
Методы
Методы объекта Math представляют собой математические функции.
Пожалуй, и их включим в таблицу:
abs() |
Возвращает абсолютное значение аргумента. |
acos() |
Возвращает арккосинус аргумента |
asin() |
Возвращает арксинус аргумента |
atan() |
Возвращает арктангенс аргумента |
ceil() |
Возвращает большее целое число аргумента,
округление в большую сторону. Math.ceil(3.14) вернет 4
|
cos() |
Возвращает косинус аргумента |
exp() |
Возвращает экспоненту аргумента |
floor() |
Возвращает наибольшее целое число
аргумента, отбрасывает десятичную часть |
log() |
Возвращает натуральный логарифм аргумента |
max() |
Возвращает больший из 2-х числовых
аргументов. Math.max(3,5) вернет число 5 |
min() |
Возвращает меньший из 2-х числовых
аргументов. |
pow() |
Возвращает результат возведения в
степень перврго аргумента вторым. Math.pow(5,3) вернет 125 |
random() |
Возвращает псевдослучайное число между
нулем и единицей. |
round() |
Округление аргумента до ближайшего
целого числа. |
sin() |
Возвращает синус аргумента |
sqrt() |
Возвращает квадратный корень аргумента |
tan() |
Возвращает тангенс аргумента |
Вот как будто и все методы. Обработчиков событий конечно
нет для внутренних объектов. Синтаксис очень прост, вызывается метод
как любая функция, но это всеже метод и не забывайте указывать префикс
Math перед методом: var mpi = Math.Pi. В данном случае
переменной mpi присвоится значение Пи. Или, например, var myvar =
Math.sin(Math.Pi/4). Думаю, комментарии излишни.
Обобщенные объекты
Пожалуй, еще рано о них говорить. Думается позже, когда будем
разбирать пользовательские объекты и конструкторы. Иначе, придется делать
большое отступление.
Строковые объекты
Строка (string) в языке JavaScript представляется в виде пследовательности
символов, заключенных в двойные или одинарные кавычки. Для управления
строковыми объектами используется синтаксис:
stringName.propertyName
stringName.methodName(parameters)
Здесь stringName - имя объекта String. Строки можно создавать тремя
способами:
1. Создать строковую переменную при помощи оператора var и присвоить
ей строковое значение;
2. Присвоить значение строковой переменной только посредством оператора
присваивания (=);
3. Использовать конструктор String().
Свойства
Значением свойства length является длина строки.
Например, выражение "Script".length вернет значение 6, поскольку строка
"Script" содержит 6 символов.
Методы
Как можно и передположить, разработчики языка не оставили этот
объект со скудным запасом методов. Вспомните любой язык программирования
и сколько строковых функций он содержит. Чтож, так, как использование
этих методов не составит затруднений, я их просто помещу в таблицу.
Вызов метода осуществляется обычно: "Строка или строковая переменная".метод(),
в данном случае метод без параметров, имеются методы и с параметрами.
Заметьте, строка или строковая переменная, к которой применяется
метод - объект, и никак не аргумент!
Метод |
Описание метода |
big() |
Аналогично тегам HTML <big> . . .</big>.
позволяет отобразить более крупным шрифтом. |
blink() |
Заставляет строку мигать. (Этим почти никто
не пользуется). |
bold() |
Название говорит за себя - делает символы
жирными. |
charAt(arg) |
Возвращает символ, находящийся в заданной
позиции строки. Пример: vpos = "Script".charAt(3); переменной
vpos будет присвоено значение "r". |
fixed() |
Анологично <tt> . . .</tt> вывод
строки фиксированного размера. |
fontcolor(arg) |
Анологично <font color="#rrggbb">
. . .</font>. Аргумент метода может быть как триплетом RGB,
так и зарезервированным словом. |
fontsize(arg) |
Позволяет изменять размер шрифта. Аргумент
в условных единицах. Анологично <font size=size> . . .</font>.
Также можно использовать вид +size или -size для
увеличения или уменьшения шрифта на size единиц, например:
"строка".fontsize(+1). |
indexOf(arg1[,arg2]) |
Возвращает позицию в строке, где впервые
встречается символ - arg1, неябязательный числовой аргумент arg2
указывает начальную позицию для поиска. |
italics() |
Аналогично тегам HTML <i> . . .</i>.
позволяет отобразить италиком. |
lastlndexOf(arg1[,arg2]) |
Возвращает либо номер позиции в строке,
где в последний раз встретился символ - arg1, либо -1, если символ
не найден. Arg2 задает начальную позицию для поиска. |
link() |
Аналогично тегам HTML <a href> . .
.</a>. позволяет преобразовать строку в гиперсвязь. |
small() |
Аналогично тегам HTML <small> . .
.</small>. позволяет отображать строку мелким шрифтом. |
strike() |
Аналогично тегам HTML <strike> . .
.</strike>. позволяет отображать строку зачеркнутой. |
sub() |
Аналогично тегам HTML <sub> . . .</sub>.
позволяет отображать строку нижним индексом. |
substring(arg1,arg2) |
Позволяет извлеч подстроку длинной arg2,
начиная с позиции arg1 |
sup() |
Аналогично тегам HTML <sup> . . .</sup>.
позволяет отображать строку верхним индексом. |
toLowerCase() |
Преобразует символы строкового объекта в
строчные |
toUpperCase() |
Преобразует символы строкового объекта в
прописные |
Вот, пожалуй, и весь список методов объекта String. Примеры их использования
будут приводиться по ходу рассмотрения других объектов. К строковым методам,
как видно из таблицы относятся методы-функции операций над строками и
в то же время как методы форматирования.
[<<Назад] [В начало] [Следущий>>]
|