1.7 Встроенные объекты и их методы.
Некоторые объекты встроены в JavaScript и могут использоваться как в
клиенте, так и на сервере. Ими являются объекты типа Array, Boolean, Date,
Function, Math, Number, and String.
1.7.1 Объекты Array.
JavaScript не имеет явного типа данных -массив(array). Однако, можно
использовать встроенный объект Array и его методы и работать с массивами
в приложениях. Объект Array имеет методы для соединения, перевертывания
и сортировки массивов. У него есть свойство для определения длины массива.
Массив есть упорядоченный набор значений, к которым можно обратиться по
имени и индексу. Создание массивов:
1. arrayObjectName = new Array([arrayLength])
2. arrayObjectName = new Array([element0, element1, ..., elementn])
аrrayObjectName является или названием нового объекта или свойством
существующего объекта, аrrayLength - начальная длина множества. Можно получить
доступ к этому значению используя свойство length; elementn - список значений
для элементов множества, когда использована вторая форма инициализации
массива, его длина определяется количеством аргументов.
Объект Array имеет следующие методы:
- join - связывает все элементы массива в строку;
- reverse переворачивает элементы массива: первый элемент становится
последним и наоборот;
- sort сортирует элементы массива.
Например, предположим, что мы определяем следующий массив:
myArray = new Array("Wind","Rain","Fire")
тогда myArray.join() возвратит "Wind,Rain,Fire";
myArray.reverse преобразует массив так, что myArray[0] есть"Fire",
myArray[1] есть "Rain", и myArray[2] есть "Wind".
myArray.sort сортирует элементы массива в лексикографическом порядке,
так что myArray[0] есть "Fire", myArray[1] есть "Rain",
и myArray[2] есть "Wind".
Определение элементов массива. Можно определять элементы массива с помощью
оператора присваивания, например:
emp[1] = "Casey Jones"
emp[2] = "Phil Lesh"
emp[3] = "August West"
Можно это сделать при при создании массива:
myArray = new Array("Hello", myVar, 3.14159)
В следующем примере создается двумерный массив и выводится на экран.
a = new Array(4)
for (i=0; i < 4; i++) {
a[i] = new Array(4)
for (j=0; j < 4; j++) {
a[i][j] = "["+i+","+j+"]"
}
}
for (i=0; i < 4; i++) {
str = "Row "+i+":"
for (j=0; j < 4; j++) {
str += a[i][j]
}
document.write(str,"<p>")
}
Этот пример показывает следующие результаты:
Row 0:[0,0][0,1][0,2][0,3]
Row 1:[1,0][1,1][1,2][1,3]
Row 2:[2,0][2,1][2,2][2,3]
Row 3:[3,0][3,1][3,2][3,3]
Можно обратиться к элементам массива используя значение элемента или
его индекс. Например, в следующем примере myArray = new Array("Wind","Rain","Fire")
Можно обратиться к первому элементу массива как myArray [0] или myArray
["Wind"].
1.7.2 Объекты Boolean.
Встроенные объекты Boolean нужно использовать тогда, когда необходимо
преобразовать не-boolean значение в boolean значение. Можно использовать
Boolean в любом месте JavaScript, где ожидается значение такого типа. JavaScript
возвращает значение объекта Boolean автоматически вызывая метод valueOf.
Создание объектa Boolean:
booleanObjectName = new Boolean(value)
booleanObjectName - или имя нового объекта или свойство существующего,
value - начальное значение объекта. Значение преобразуется к типу boolean,
если необходимо. Если значение опущено или 0, null, false или пустая строка
"", объект инициализируется значением false, Во всех других случаях,
включая строку "false", создается объект с начальным значением
true. В следующем примере создаются два объекта Boolean
bfalse = new Boolean(false)
btrue = new Boolean(true)
1.7.3 Объект Date.
JavaScript не имеет данных типа date. Однако, можно использовать объект
Date и его методы для работы с датами и временами в приложениях. Объект
Date имеет большое количество методов для установки, получения, и управления
датами. У него нет свойств. JavaScript обращается с датами подобно языку
Java. Эти два языка имеют много одинаковых методов и хранят даты как число
миллисекунд. прошедших с 1 января 1970г, 00:00:00.
Примечание. В настоящее время нельзя работать с датами до 1 января
1970г.
Создание объекта Date:
dateObjectName = new Date([parameters])
где dateObjectName - имя создаваемого объекта, это может быть новый
объект или свойство существующего объекта. Параметры могут задаваться следующим
образом:
- опущены: создается текущие дата и время, например, today= new Date();
- определяется строка в формате "месяц день, год часы:минуты:секунды",
например, Xmas95 =new Date("December 25, 1995 13:30:00"). Если
опускаются часы, минуты или секунды они устанавливаются в нуль;
- задается целое значение года, месяца и дня, например, Xmas95 = new
Date(95,11,25).
- задается целое значение года, месяца, дня, часов, минут, секунд.
Методы объекта Date. Методы для обработки дат и времен можно
разделить на следующие категории:
- - "set" методы, для установки дат и времен;
- - "get" методы, для получения дат и времен;
- - "to" методы, для получения строковых значений;
- - parse и UTC методы, для грамматического разбора строк с датами.
С помощью "get" и "set" методов можно получать и
устанавливать секунды, минуты, часы, дни месяца, дни недели, месяцы, и
годы независимо друг от друга. Имеется метод getDay, возвращающий день
недели, но нет соответствующего метода setDay, поскольку день недели устанавливается
автоматически.
В методах используются следующие целые значения:
-секунды и минуты: 0 - 59
-часы: 0 - 23
-день недели: 0 - 6
-день месяца: 1 - 31 -месяц: 0 (январь) - 11 (декабрь)
-год: с 1900
Например, если вы установили следующую дату:
Xmas95 = new Date("December 25, 1995")
то Xmas95.getMonth() возвратит 11, а Xmas95.getYear() возвратит 95.
Методы getTime и setTime полезны для сравнения дат. Метод getTime возвращает
число миллисекунд начиная с 01.01.1970. Следующий пример выводит число
дней, прошедших в текущем году:
today = new Date()
endYear = new Date("December 31, 1990") // Установили день
и месяц endYear.setYear(today.getYear()) // Установили текущий год
msPerDay = 24 * 60 * 60 * 1000 // Число миллисекунд за день
daysLeft = (endYear.getTime() - today.getTime()) / msPerDay
daysLeft = Math.round(daysLeft) document.write("Number of days
left in the year: " + daysLeft)
В этом примере создается объект Date c именем today, который содержит
текущую дату. endYear определяет начало текущего года. Тогда, используя
число миллисекунд за день, вычисляем число дней между today и endYear,
используя getTime, и округляем число дней до целого.
Метод parse полезен для присваивания даты существующему объекту из строкового
значения. Например, следующий пример использует parse и setTime для назначения
даты объекту mydate:
mydate = new Date() mydate.setTime(Date.parse("Aug 9, 1995"))
Пример использования объекта Date. В этом примере в HTML области показываются
непрерывно обновляемые цифровые часы. Это осуществимо, поскольку есть возможность
динамически изменить содержание области текста в JavaScript (в отличие
от обычного текста, который нельзя модернизировать без перезагрузки документа).
Вывод в навигаторе выглядит следующим образом:
Раздел <BODY> документа выглядит так:
<BODY onLoad="JSClock()">
<FORM NAME="clockForm"> The current time is <INPUT
TYPE="text" NAME="digits" SIZE=12 VALUE="">
</FORM> </BODY>
Тег <BODY> включает обработчик событий onLoad. Когда страница
загружается обработчик вызывает функцию JSClock, определяемую в разделе
<HEAD>. Форма clockForm включает простое текстовое поле digits, в
котором инициализирована пустая строка. В разделе <HEAD> документа
JSClock определяется следующим образом:
<HEAD> <SCRIPT language="JavaScript">
<!-- function JSClock() {
var time = new Date()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.getSeconds()
var temp = "" + hour
temp += ((minute < 10) ? ":0" : ":") + minute
temp += ((second < 10) ? ":0" : ":") + second
document.clockForm.digits.value = temp
id = setTimeout("JSClock()",1000)
} //-->
</SCRIPT>
Функция JSClock сначала создает новый объект Date, с именем time; так
как аргументы не заданы, устанавливаются текущие значения. Запросы к getHours,
getMinutes, и getSeconds выделяют значение текущего часа, минуты и секунды.
Следующие четыре оператора строят строковое значение времени. Полученное
значение присваивается области текста: document.clockform.digits.value
= temp, тем самым время будет показано в документе. Конечный оператор в
функции - рекурсивный запрос к JSClock: id=setTimeout("JSClock()",1000)
Встроенная в JavaScript функция setTimeout определяет время задержки для
для обращения к JSClock. Второй аргумент указывает задержку в 1000 миллисекунд.
Таким образом модернизируется показ времени в форме с интервалом одна секунда.
Обратите внимание, функция возвращает значение присваиваемое id, которое
в данном случае нигде не используется, но может быть использовано в методе
clearTimeout для обнуления.
1.7.4 Объект Function.
Создание объекта Function:
functionObjectName = new Function ([arg1, arg2, ... argn], functionBody)
functionObjectName - имя переменной или свойство существующего объекта.
При использовании свойств функции, functionObjectName должен быть или именем
существующего объекта или свойством существующего объекта. аrg1, arg2,
... argn - аргументы, которые используются функцией как формальные параметры.
Каждый из параметров должен быть строкой, которая допустима в JavaScript
как идентификатор; например " x "или"theForm ". functionBody
- строка, специфицирующая JavaScript-коды, которые нужно компилировать
как тело функции.
Объекты function обрабатываются каждый раз, когда они используются.
Это менее эффективно, чем объявление функции и их вызов, потому что объявленные
функции компилируются.
Следующий пример назначает функцию переменной setBGColor. Эта функция
устанавливает цвет фона текущего документа.
var setBGColor = new Function("document.bgColor='antiquewhite'")
Для вызова объекта Function, нужно специфицировать имя переменной, как
будто это функция, например:
var colorChoice="antiquewhite" if (colorChoice=="antiquewhite")
{setBGColor()}
Можно назначить функцию обработчиком событий следующими способами:
- document.form1.colorButton.onclick=setBGColor
- <INPUT NAME="colorButton" TYPE="button" VALUE="Change
background color" onClick="setBGColor()">
Создание переменной setBGColor похоже на обычное декларирование функции.
function setBGColor() { document.bgColor='antiquewhite' }
Назначение функции переменной подобно объявлению функции, но есть различия:
когда для функции назначается переменная setBGColor = new Function("..."),
setBGColor является переменной, текущее значение которой относиться к функции,
созданной с помощью new Function(), когда создается функция с помощью function
setBGColor() {...}, setBGColor не является переменной, это имя функции.
1.7.5 Объект Math.
Встроенный объект Math имеет свойства и методы для ма- тематических
констант и функций. Например, свойство PI объекта Math имеет значение 3.141...,
который можно использовать как Math.PI Стандартные математические функции
являются методами Math. Они включают тригонометрические, логарифмические,
показательные, и другие функции. Например, если нужно использовать синус,
следует писать Math.sin (1.56) Обратите внимание что все тригонометрические
методы Math используют аргументы в радианах. В следующей таблице приведены
методы Math.
Метод |
Описание |
abs |
абсолютное значение |
sin, cos, tan |
стандартные тригонометрические функции, аргумент в радианах |
acos, asin, atan |
обратные тригонометрические функции, возвращают значение в радианах |
exp, log |
экспонента и натуральный логарифм |
ceil |
возвращает наименьшее целое, большее или равное аргументу |
floor |
возвращает наибольшее целое, меньшее или равное аргументу |
min, max |
возвращает меньшее или большее (соответственно) из двух аргументов |
pow |
возведение в степень, первый аргумент основание, второй показатель
степени |
round |
округляет аргумент до ближайшего целого |
sqrt |
квадратный корень |
Часто удобно использовать оператор with, когда есть раздел, в котором
используется набор констант и методов, чтобы не повторять слово "Math".
Например:
with (Math) { a = PI * r*r; y = r*sin(alfa); x = r*cos(alfa) }
1.7.6 Объект Number.
Этот объект имеет свойства для цифровых констант такие как максимальное
значение, неопределенность, бесконечность. Эти свойства можно использовать
следующим образом:
biggestNum = Number.MAX_VALUE
smallestNum = Number.MIN_VALUE
infiniteNum = Number.POSITIVE_INFINITY
negInfiniteNum = Number.NEGATIVE_INFINITY
notANum = Number.NaN
В следующей таблице приведены свойства Number:
Название |
Описание |
MAX_VALUE |
наибольшее значение |
MIN_VALUE |
наименьшее значение |
NaN |
неопределенность |
NEGATIVE_INFINITY |
отрицательная бесконечность |
POSITIVE_INFINITY |
положительная бесконечность |
1.7.7 Объект String.
У JavaScript нет типа данных string. Однако можно пользоваться объектом
String и его методами для работы со строками в прилoжениях. Этот объект
имеет множество методов и одно свойство - длину строки.
Создание объекта String:
stringObjectName = new String(string)
stringObjectName - имя нового объекта String, string - любая строка.
Например, следующий оператор создает объект String, названный mystring:
mystring = new String ("Hello, World!")
аналогичные действия выполняет и оператор:
mystring="Hello, World!"
Строковые литералы также являются объектами String. Свойство length
для строки указывает число символов в ней, так x = mystring.length присвоит
значение х равное тринадцати, потому что "Hello, World!" имеет
13 символов.
Объект String имеет два типа методов - те, которые возвращают в качестве
результата преобразованную исходную строку (как, например, подстроку или
строку, у которой все символы переведены в верхний регистр) и те, которые
возвращают строку в формате HTML (например link).
Например mystring.toUpperCase() and "hello,world!".toUpperCase()
возвратят строку "HELLO, WORLD!". Метод substring имеет два аргумента
и возвращает подстроку, располагающуюся между указанными номерами, например,
mystring.substring(4, 9) возратит строку "o,Wo".
Методы bold и link используются для HTML- форматирования, первый создает
жирный текст, второй гипертекстовую ссылку. Например, для создания ссылки
к гипотетическому URL с помощью метода link можно воспользоваться следующим
оператором:
mystring.link("http://www.helloworld.com")
Следующая таблица показывает методы объектов Sring:
Метод |
описание |
anchor |
создает HTML-якорь |
big, blink, bold, fixed, italics, small, strike, sub, sup |
создает строку HTML, соответствующего вида |
charAt |
возвращает символ по его номеру в строке |
ndexOf, lastIndexOf |
возвращают первую (последнюю) позицию специфицированной подстроки |
link |
создает гипертекстовую ссылку |
split |
разбивает объект String на массив подстрок |
substring |
извлекает подстроку из строки |
toLowerCase, toUpperCase |
возвращает строку в нижнем или верхнем регистре, соответственно |
[ Оглавление ] [ Дальше ]
|