Лекции (989962), страница 60
Текст из файла (страница 60)
Хотя синтаксис Java и JavaScript во многом схож, однако возможности иназначение языков разные. Если апплеты Java представляют собой независимые программы с широкойгаммой возможностей, встраиваемые в HTML-страницу, то скрипты JavaScript в основном нацелены наиспользование существующей объектной модели Web-браузера, а также позволяют расширять ее, создаваясобственные объекты. Программы на Java представляют собой байт-код, а программы на JavaScriptнепосредственно включаются в Web-страницу в виде исходного текста. Таким образом, Java – это язык длянаписания программ, а JavaScript – это язык для написания скриптов управления HTML-страницами.Для включения программ на JavaScript в HTML-страницу необходимы те же теги <SCRIPT></SCRIPT>, что и для программ на VBScript, выглядящие примерно так:<SCRIPT LANGUAGE="JavaScript"><!-alert("Приветик");--></SCRIPT>В остальном, принцип размещения и написания JavaScript программ похож на рассмотренный ранее дляVBScript – тот же объектно-ориентированный подход, то же манипулирование объектами Window,Document, Form и др.
через их свойства, методы и события. Единственное отличие – это синтаксис,унаследованный от Java. В лекциях не будет уделяться много внимания синтаксису JavaScript, заисключением случаев, когда он отличен от синтаксиса Java. Основной упор будет сделан на решение рядазадач (создание анимации, управление слоями и др.). Поэтому рекомендую перечитать лекции по Java, атакже лекции по VBScript и HTML.Существует четыре версии JavaScript.• JavaScript 1.0. Первая версия языка, поддерживаемая Internet Explorer 3.0 и Netscape Navigator 2.0.• JavaScript 1.1.
Поддерживается Netscape Navigator 3.0 и Internet Explorer 4.0 (почти полностью).• JavaScript 1.2. Поддерживается Netscape Navigator 4.0 и Internet Explorer 4.0 (частично).• JavaScript 1.3. Поддерживается Netscape Navigator 4.5.В дескрипторе <SCRIPT> можно указывать номер версии JavaScript. Указание версии JavaScriptпредотвращает попытки броузеров старых версий выполнить сценарии, созданные в новых версияхJavaScript.
Если вы используете JavaScript 1.3, то Netscape 4.0, Internet Explorer 4.0 и ранних версийвыполнить сценарии не в состоянии.Начиная с версии JavaScript 1.2, программы на JavaScript могут не включаться непосредственно втекст HTML-страницы, а быть оформлены в виде отдельного файла, с расширением js. Пример:<SCRIPT LANGUAGE="JavaScript1.2" SRC="programma.js"></SCRIPT>Описание функций в JavaScript.Программа на JavaScript может включаться в HTML – документ непосредственно между тэгами <SCRIPT></SCRIPT>, как это было показано выше. В этом случае она будет выполнена после того, как браузеротобразит содержимое документа предшествующее тэгу <SCRIPT>, и до того, как браузер отобразитсодержимое документа, следующее за тэгом </SCRIPT> (см. лекции по VBScript).
Однако чаще всего,программы на JavaScript оформляют в виде отдельных функций, которые запускаются в ответ на определенные события (щелчок мышью, перемещение над гиперссылкой и т.д.). Функции оформляютсяследующим образом:Синтаксис:function ИмяФункции ( ) {команда;return возвращаемое_значение;} Ляхевич А.Г., 2000 - 2002 годПример:<HTML> <HEAD><SCRIPT LANGUAGE="JavaScript">function Greet (who) {alert("Приветик " + who); }</SCRIPT> </HEAD><BODY>Приветствие выводится два раза<SCRIPT LANGUAGE="JavaScript">Greet("Ваня"); Greet("Серега");</SCRIPT></BODY></HTML>Обработка событий в JavaScript.Каждый объект HTML-страницы: кнопка, гиперссылка, сама страница и др. – имеют свой набор событий(см.
лекцию по VBScript). Обработка событий (щелчки мышью, наведение на гиперссылку, загрузкастраницы и т.д.) реализуется в JavaScript в виде отдельной функции, либо непосредственно в самом тегеэлемента. Можно также динамически изменять события назначенные элементу. Примеры заданияобработчиков событий приведены ниже:Пример 1. Обработчик события в тэге элемента:<HTML><BODY><a href="http://www.microsoft.com" onmouseover="alert('Без стука не входить!'); "> Гиперссылка </a></BODY> </HTML>Пример 2.
Обработчик события в виде отдельной функции:<HTML><HEAD> <SCRIPT LANGUAGE="JavaScript">function info( ) {alert(' Без стука не входить!'); }</SCRIPT> </HEAD><BODY><a href="http://www.microsoft.com" onmouseover="info ();"> Гиперссылка </a></BODY> </HTML>Пример 3. Динамическое назначение обработчика событий:<HTML><HEAD><SCRIPT LANGUAGE="JavaScript">function info ( ) { alert(' Без стука не входить!'); }</SCRIPT> </HEAD><BODY><a href="http://www.microsoft.com" name="link1"> Гиперссылка </a><SCRIPT LANGUAGE="JavaScript"> link1.onmouseover=info; </SCRIPT></BODY> </HTML>Типы данных, глобальные и локальные переменные в JavaScript.В некоторых языках программирования необходимо при объявлении переменных указывать их тип данных.В JavaScript тип данных переменной не указывается. Если переменной, содержащей целое число присвоитьстроковое значение, то ошибки не произойдет, т.к.
переменная имеет "любой" тип данных, который можетвключать в себя:• Числовой тип (целые числа или числа с плавающей точкой).• Булевский тип, или логический ( true (истина) или false (ложь) ).• Строковый тип.• Нулевой тип. Определяется ключевым словом null. Если переменная не была определена, то онапринимает это значение.В JavaScript переменные можно использовать без предварительного описания. Если же переменнаявсе-таки описывается, то это делается следующим образом:Синтаксис:1) переменная = значение;2) var переменная = значение;Пример:bird = "Альбатрос";var bird = "Альбатрос"; Ляхевич А.Г., 2000 - 2002 годКлючевое слово var дает указание JavaScript создать локальную переменную, даже если уже существуетглобальная переменная с таким же именем.
Хотя это и не обязательно, для избежания ошибок, всегдаиспользуйте var при объявлении локальных переменных.Все переменные в JavaScript делятся на локальные (описанные на уровне функции) и глобальные(описанные вне какой-либо функции, но между тэгами <SCRIPT> </SCRIPT>). Локальные переменныевидны только в рамках одной функции и существуют только пока выполняется функция. Глобальныепеременные, описанные в рамках какого-либо тэга <SCRIPT> </SCRIPT>, видны для всех функций излюбых тэгов <SCRIPT> </SCRIPT> на данной странице, и существуют, пока загружена страница.Пример:<HTML> <HEAD><SCRIPT LANGUAGE="JavaScript">name1="Ваня"; name2="Серега";function Greet(who) {var name3="Таня"; alert("Внимание!" + who);}</SCRIPT></HEAD></BODY> Сообщение выводится два раза.
Переменная name3 недоступна, т.к. она локальная.<SCRIPT LANGUAGE="JavaScript"> Greet(namel); Greet(name2); </SCRIPT></BODY> </HTML>Преобразование типов данныхJavaScript во всех возможных случаях самостоятельно производит преобразование одних типов данных вдругие. Пусть вы в программе используете оператор: document.write("Общая сумма: " + summa);Если переменная summa имеет значение 40, то на экране отобразится следующая строка: Общая сумма: 40.Любые нетекстовые значения (в нашем примере summa) преобразуются в текстовые. И только после этогорезультат выводится в окне браузера.
В некоторых ситуациях сроковый тип данных необходимопреобразовать в числовой. Для этих целей в JavaScript используются две функции.• parselnt(). Преобразует текстовый тип данных в целочисленный.• parseFloat(). Преобразует текстовый тип данных в числовой с плавающей точкой.Пример:stroka = "2000 ершиков";chislo = parseInt(stroka);После выполнения этих операторов переменная chislo принимает значение 2000. Нечисловая частьпредложения игнорируется и отбрасывается.
Функции преобразования типов данных ищут только первоечисло в строке текста. Если число не найдено, функция возвращает строковое значение NaN, указывая на то,что текст не содержит числовых значений.Массивы в JavaScript.Массивы необходимо объявлять перед использованием. В приведенном ниже примере объявлен массив,состоящий из 30 элементов: massiv = new Array(30);Индексация в массиве начинается с нуля.
Следующие операторы определяют значения первых трехэлементов массива: massiv[ 0 ] = 39; massiv[ 1 ] =40; massiv[ 2 ] = 100;Подобно строковым переменным массивы имеют свойство length. Оно определяет количествоэлементов, из которых состоит массив. Пример: dlina_massiva = massiv.length ;Любой массив имеет метод sort( ), используемый для сортировки элементов массива. Онвозвращает упорядоченную копию исходного массива. Упорядочение проводится как по алфавиту (длястроковых значений), так и по возрастанию или убыванию (для числовых значений). Пример:massiv = new Array(3);massiv [ 0 ] = "Сидоров"; massiv [ 1 ] = "Иванов"; massiv [ 2 ] = "Петров";sorted_massiv = massiv.sort ( );Для массивов и объектов существует специальный цикл for..
.in, который последовательноперебирает каждый элемент массива (объект).Пример 1 (массив):for (i in massiv) { document.writeln ( massiv [ i ] ); }Пример 2 (объект):for (i in navigator) { document.write(" Значение: "+navigator[i]); } Ляхевич А.Г., 2000 - 2002 годАрифмитические и логические операции.ОперацияОписаниеx=3Присвоить переменной x значение 3.+, -, *, /, %Сложение, вычитание, умножение, деление и деление по модулю (определение остаткаот деления).Увеличить x на единицу, уменьшить x на единицу.x ++, x -+=, -=, *=, /=x == 3x != 3<,<=,>,x|yСложение, вычитание, умножение и деление с присваиванием.x+=3 аналогично команде x=x+3.Операция равенства: x равен 3. Используется в конструкции IF..ELSE и др.Пример: if (x==3) { //действия };Операция неравенства: x не равен 3.>= Операции отношений: меньше, меньше или равно, больше, больше или равно.x&yПоразрядная операция ИЛИ (OR).