0  На главную

0 1.Как создают веб-страницы
Как написать веб-страницу
Обзор программ для просмотра
и создания веб-страниц
Создание веб-страниц

0 2.Основные средства языка HTML
Самое главное на любой веб-странице - гиперссылки
Как создать списки на веб-странице
Создание таблиц

0 3.Графика на веб-странице
Графические форматы
интернета
Графические элементы оформления
веб-страниц
Графические маркеры
Подготовка рисунков в
программе Adobe Photoshop

0 4.Оформление веб-страницы с использованием стилей
Определение стилей в
специальной таблице
Обзор других возможностий
стилевых таблиц

0 5.Использование звука на
веб-странице
Маленькие хитрости

0 6.Динамические веб-страницы
на основе JavaScript
Как писать собственные функции
Динамическое изменение внешнего
вида страницы
Другие возможности языка
JavaScript

0 7.Веб-страницы, реагирующие
на действия пользователя
Страница, управляемая
при помощи мыши
Страница, управляемая
с клавиатуры
Динамическое отображение
текста веб-страницы
Динамическое изменение
графических элементов веб-страницы
Динамическое изменение таблиц
Самоизменяющиеся формы

0 8.Размещение элементов на веб-странице
с помощью таблиц
Управление расположением элементов
на веб-страницы
Динамическое позиционирование слоев

0 9.Дополнительные возможности формирования веб-страниц
Пример использования элемента управления Tabular Data

Другие возможности языка JavaScript

Дополнительные операторы JavaScript

Подведем промежуточный итог знакомства с JavaScript. На самом деле, мы с вами рассмотрели не так уж мало: достаточно сказать, что мы изучили практически все операторы этого языка. Конечно, все дело в том, что их не так много: операторы организации циклов (for, while и do... while), условные операторы (if и switch) и операторы манипулирования объектами, которые мы пока не рассматривали. Этих операторов всего два: with и for... in. Оба применяются в основном для сокращения объема вводимого текста. Например, вместо того чтобы написать

document. open();
document. write("Привет!");
document. close();

можно использовать такую сокращенную запись:

with (document) {
open();
write("Привет!");
close();
}

Во втором случае мы сэкономили время, так как не пришлось много раз вводить длинное слово document. Однако на первых порах лучше не злоупотреблять этой возможностью, поскольку весь текст становится труд, нее для восприятия с первого взгляда.

Другой оператор — for... in так же, как и оператор for, организует цикл. Но только вместо условия цикла при этом нужно указать объект, по всем свойствам которого этот цикл и «пройдется». Наверное, предыдущая фраза была не совсем понятна, поэтому поясним ее на примере.

Мы уже знаем о двух свойствах, позволяющих определить версию броу зера —это navigator. appName и navigator. appVersion. Оба принадлежат объекту navigator. А между прочим, у этого объекта есть еще ряд интересных свойств, Чтобы их просмотреть, давайте создадим страницу, содержащую неболь. шой сценарий.

<HTML>
<НЕАD>
<TITLE>Свойства Navigator</TITLE>
</НЕАD>
<BODY>
<script>
for (q in navigator)
document. write (q+"="+navigator [q] +"<BR>");
</script>
<BODY>
<HTML>

Работает этот сценарий следующим образом. Переменной q поочередно присваивается имя каждого свойства объекта navigator. На экран при этом выводится (с помощью метода document. write) имя свойства (q), и, после знака равенства, значение свойства — (navigatorfq])1. Таким образом, можно узнать о свойствах, о существовании которых мы до этого даже не подо- зревали!

Вот, например, что нам покажет броузер Internet Explorer версии 5. 0, если загрузить в него эту страницу:

appCodeName=Mozilla
appMinorVersion=0
appName=Microsoft Internet Explorer
appVersion=4. 0 (compatible; MSIE 5. 0; Windows 98; DigExt)
cookieEnabled=true
cpuClass=x86
mimeTypes=
onLine=true
opsProfile=
platform=Win32
plugins=
systemLanguage=ru
userAgent=Mozilla/4. 0 (compatible; MSIE 5. 0; Windows 98; DigExt)
userLanguage=ru
userProfile=

Как видите, свойств довольно много. Некоторые из них, правда, дублируют друг друга. Например, свойство appMinorVersion — это число, стоящее после точки в appVersion (номер под-версии). А значение свойства userAgent состоит из комбинации значений appCodeName1 и appVersion. Кстати, различные броузеры покажут нам не только различные значения свойств, но и представят различный их набор. Вот, например, результат загрузки той же страницы в броузер Netscape 6:

appCodeName=Mozillа
appName=Netscape
appVersion=5. 0 (Windows; en-US)
language=en-US
mimeTypes=[object MimeTypeArray]
platform=Windows
plugins=[object PluginArray]
securityPolicy=
userAgent=Mozilla/5. 0 (Windows; N; Win98; en-US; m!4) Netscape6/ 6. 0b1
cookieEnabled=true

Таким образом, оператор цикла for... in можно использовать не только для сокращения времени «стучания по клавиатуре», но и для исследования броузера!

Кстати, условный оператор if также имеет сокращенную форму записи, которую в некоторых случаях удобно применять (особенно если условие и выполняемые действия достаточно компактны). Для этого следует просто написать условие, затем поставить знак вопроса, и после него указать действие, выполняемое в случае правильности условия. Затем, после двое- точия, можно указать действие, выполняемое в противном случае.

Например, вместо:

if (a<=100)
some_function(a);
else
alert ("Число превышает допустимое значение!");

можно написать так:

(а<=100) ? some_function(a): alert("Число превышает допустимое значение!");

Здесь some_function() — просто какая-то функция, определенная где-то на веб-странице.

Встроенные функции JavaScript

Теперь о функциях. Мы уже научились определять собственные функции Кроме того, в JavaScript существуют так называемые встроенные (или предопределенные) функции. Некоторые из них мы уже знаем — это isNaN() и parseInt(). Кстати, функция parseInt() имеет еще одну замечательную особенность: с ее помощью можно распознать число, введенное в любой системе счисления, начиная от двоичной и кончая 36-ричной. Для этого нужда просто в качестве второго аргумента указать основание системы счисле» ния, например, вот так:

parseInt("1110", 2);

В этом случае строка 1110 будет интерпретирована как двоичное число, я результатом функции будет число 14.

Кроме этих двух функций существуют еще функции parseFloat() и isFinite() Функция parseFloat() не может принимать второй аргумент, зато може? выделить из строки дробное число. Например, если написать parseInt("3. 289 times");

то результатом выполнения функции будет число 3, а если написать

parseFloat("3. 289 times");

результатом будет число 3, 289. Кроме того, с помощью этой функции можно распознать число, введенное в нормализованной форме, например:

parseFloat ("3. 755е-2");

даст в результате 0, 03755.

Что касается функции isFinite(), то она принимает значение истина, если аргумент является числом, или ложь — в противном случае. Как вы можете заметить, она делает то же, что и функция isNaN(), только с противоположным результатом.

Существует еще полезная функция eval(). Она обычно определяется, как вычисление выражения без ссылки на конкретный объект. Сходу это понять довольно трудно. Действие этой функции будет проиллюстрировано в разделе 7. 4.

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

Math. pow(j, i)

Такие конструкции, как правило, являются методами одного из встроенных объектов. Если вы пока плохо представляете себе, что это такое, не огорчайтесь. Для их употребления это совершенно не важно, поскольку их синтаксис очень похож на синтаксис функций. Например, выше было продемонстрировано возведение в степень. Можно осуществлять и другие действия с помощью объекта Math. Например, для округления числа i до ближайшего целого достаточно написать Math. round(i), а для вычисления его синуса — Math. sin(i). Список методов для математических действий вы найдете в Приложении 5.

Кроме того, можно пользоваться свойствами объекта Math. Если, к при- меру, потребовалось ввести число я, то не стоит вспоминать его с точностью чо какого-то там знака — достаточно написать вместо него Math. PI. Можно точно так же определить другие важные математические константы. Помимо объекта Math, в JavaScript имеются и другие, например Array для работы с массивами, Date для работы с датами и прочие. Их список вы сможете найти в Приложении 5, а в следующих главах этой книги будут приведены примеры использования некоторых из них.

Hosted by uCoz