Объект String представляет интерес главным образом благодаря методам обработки строк. Эти методы позволяют, например, найти позицию вхождения одной строки в другую, вырезать из строки некоторую ее часть, разбить строку на отдельные элементы и создать из них массив и т. д.
Для создания строкового объекта используются выражения следующего вида:
1) имя_переменной = new String("строковое_значение")
2) имя_переменной = "строковое_значение"
3) var имя_переменной = "строковое_значение"
Доступ к свойствам и методам строкового объекта:
1) строка.свойство
2) String.свойство
3) строка.метод([параметры])
4) String.метод([параметры])
Когда используется ключевое слово String в качестве имени объекта, это означает, что нас интересуют свойства и методы статического строкового объекта, то есть общие свойства и методы, не связанные с конкретными свойствами и методами конкретного строкового объекта (экземпляра объекта String).
Существует несколько способов создания массива. В любом случае прежде всего создается новый объект массива с использованием ключевого слова new:
имя_массива = new Array([длина_массива])
Если длина массива не указана, то создается пустой массив, не содержащий ни одного элемента. В противном случае создается массив с указанным количеством элементов, однако все они имеют значение null (то есть не имеют значений).
Вы можете сначала создать пустой массив, а затем добавить к нему нужное количество элементов с помощью оператора присвоения. Рассмотрим создание массива earth, содержащего в качестве элементов некоторые характеристики нашей планеты.
earth = new Array(4) // массив из 4-х элементов
earth[0] = "Планета"
earth[1] = "24 часа"
earth[2] = 6378
earth[3] = 365.25
earth.length // значение равно 4
Если нам потребуется значение, например, третьего элемента массива, то достаточно использовать выражение earth [2].
Другой способ создания массива заключается в непосредственном определении элементов в круглых скобках за ключевым словом Array :
earth = new Array("Планета", "24 часа", 6378, 365.25)
Если в качестве элементов некоторого одномерного массива создать массивы, то получится двухмерный массив.
имя_массива[индекс_уровня1] [индекс_уровня2]
Типичным примером двухмерного массива является массив опций меню. У такого меню есть горизонтальная панель с опциями, называемая главным меню. Некоторым опциям главного меню соответствуют раскрывающиеся вертикальные подменю со своими опциями. Мы создаем массив, длина которого равна количеству опций главного меню. Элементы этого массива определяем как массивы названий опций соответствующих подменю. Чтобы была ясна структура нашей конструкции, мы выбрали названия опций надлежащим образом. Например, "Меню 2.1" — название 1-й опции подменю, соответствующего 2-й опции главного меню.
menu = new Array()
menu[0] = new Arrау("Меню 1.1", "Меню 1.2", "Меню 1.3")
menu[l] = new Arrау("Меню 2.1", "Меню 2.2")
menu[2] = new Arrау("Меню 3.1", "Меню 3.2", "Меню 3.3 " , "Меню 3.4")
Чтобы обратиться ко 2-й опции 3-го подменю, следует написать:
menu[2][l] // значение равно "Меню 3.2"
Усложним нашу конструкцию, чтобы она содержала не только названия опций подменю, но и названия опций главного меню:
menu = new Array()
/* Массив опций главного меню: */
menu[0] = new Array("Меню 1", "Меню 2", "Меню З")
menu[l] = new Array()
menu[l][0] = new Arrау("Меню 1.1". "Меню 1.2", "Меню 1.3")
menu[l][l] = new Arrау("Меню 2.1", "Меню 2.2" )
menu[l][2] = new Arrау("Меню 3.1", "Меню 3.2" , "Меню З.3", "Меню 3.4")
menu[0][l] // значение равно "Меню 2"
menu[0][2] // значение равно "Меню 3"
menu[l][1][0] // значение равно "Меню 2.1"
menu[1][2][3] // значение равно "Меню 3.2 "
Чтобы скопировать массив, то есть создать новый массив, элементы которого равны соответствующим элементам исходного, следует воспользоваться оператором цикла, в котором элементам нового массива присваиваются значения элементов исходного, например:
а = new Аггау(5, 2, 4, 3)
х = new Array() // ссылка на массив x
for(i=0; i<a.length; i++) // копирование
{x[i] = a [i]}
Операторами же
а = new Array(5, 2, 4, 3)
х = а // ссылка на массив а
создаётся лишь новая ссылка на прежний массив, а не новый массив.
Объект Math предназначен для хранения некоторых математических констант (например, пи) и преобразования чисел с помощью математических функций. Доступ к свойствам и методам объекта Math:
Math.свойство
Math.метод(параметры)
Система отсчета времени связана c гринвичским временем (Greenwich Mean Time — GMT). Кроме аббревиатуры GMT используется еще одна — UTC (Universal Time Coordinated — Всеобщее Скоординированное Время).
Даты и время, генерируемые в сценариях, сохраняются в памяти в системе GMT, но пользователю выводятся, как правило, в локальном виде.
Объект даты создается с помощью выражения вида:
имяОбъектаДаты = new Date([параметры])
ИмяОбъектаДаты является объектом даты, а не значением какого-нибудь другого типа (например, строкой или числом). Нумерация месяцев, дней недели, часов, минут и секунд начинается с 0. Дату и время можно установить пятью способами:
new Date("Mecяц, дд, гггг, чч:мм:сс")
new Date("Месяц, дд, гггг")
new Date(гггг, мм, дд, чч, мм, сс)
new Date(гггг, мм, дд)
new Date (миллисекунды)
В последнем способе дата и время задаются целым числом - количеством миллисекунд, прошедших с 1 января 1970 года.
В JavaScript различают объекты браузера и объекты HTML – документа. Объекты браузера создаются автоматически при загрузке веб-страницы. Все элементы на веб-странице образуют иерархическую структуру.
Клиентская сторона (часть) JavaScript (см. рис. 1) является на своем нижнем уровне набором объектов, создаваемых при загрузке Web-страницы в браузере. Все объекты клиентской стороны являются производными либо от объекта Window, либо от объекта navigator (компания Netscape, разработчик языка, разработала браузер Navigator).
Все объекты на Web-странице находятся в окне браузера, поэтому все они являются потомками объекта Window. Через объект Window программист получает доступ к различным фреймам, документам, слоям и формам, которые могут находиться на странице, а также ко множеству других объектов и свойств. Программист может производить различные действия с окном браузера.
Объект navigator относится к элементам, которые являются частью самого браузера. Использование объекта navigator позволяет проверить версию браузера, определить установленные подключаемые модули, а также программы, связанные с зарегистрированными в системе типами MIME (Multipart Internet Mail Extension — Многоцелевые расширения электронной почты). Можно узнать некоторые данные и о компьютере пользователя.
Рис. 1. Иерархия объектов клиентской части JavaScript
Подобно клиентской части, серверная часть JavaScript содержит несколько объектов, на которых основаны все остальные объекты. Корневыми объектами серверной части для реализаций являются объекты, которые позволяют получить доступ к базам данных, а также курсорам, хранимым процедурам и сгенерированным результирующим наборам.
Благодаря использованию возможностей описанной иерархии объектов, доступ к различным элементам и объектам на Web-странице реализуется за счет средств самой иерархии. Если необходимо получить доступ к определенному текстовому полю формы на странице, сделать это можно с помощью следующего фрагмента кода:
window.document.formName.textboxName.value
При загрузке HTML-документа в браузер создается объектная модель этого документа.
В объектной модели документа объекты сгруппированы в так называемые коллекции. Коллекцию можно рассматривать как промежуточный объект, который содержит объекты собственно документа. С другой точки зрения, коллекция является массивом объектов, отсортированных в порядке упоминания соответствующих им элементов в HTML-документе. Индексация объектов в коллекции начинается с нуля. Синтаксис обращения к элементам коллекции такой же, как к элементам массива.
Коллекция имеет свойство length — количество всех ее элементов. Так, например, коллекция всех объектов графических изображений в документе называется images, коллекция всех форм — forms, коллекция всех ссылок — links. Это примеры так называемых частных или тематических коллекций.
Кроме них имеется коллекция всех объектов документа, которая называется all.
Если при создании HTML-документа не использовался атрибут id для некоторых элементов, то для обращения к их объектам остается только взять индексы.
Приведенный ниже HTML-код формирует простую веб-страницу, содержащую заголовок первого уровня, изображение, ссылку и форму с двумя элементами - полем ввода данных и кнопкой.
<html>
<h1>Моя веб-страница</h1> <br>
<img src="pict.jpg">
<a href = "www.admiral.ru/~dunaev"> <br>Caйт В.Дунаева</A>
<form>
<input type="text" value="">
<p>
<button>Нажми здесь</button>
</form>
</html>
На рис. 2 приведено изображение этого HTML-документа в окне браузера.
Поскольку ни для одного из элементов документа не указан атрибут id (или name), обращение к объектам возможно только посредством индексов. Так, например, для обращения к графическому объекту (он здесь единственный) можно использовать следующее выражение
Document.images(0) // первый элемент коллекции images
Кнопка является вторым элементом формы. Чтобы обратиться к ней как к объекту, необходимо указать сначала форму (единственная форма в документе есть объект forms(0) ), а затем объект этой формы (elements(индекс_элемента)).