- •Лабораторная работа № 7 Использование языка JavaScript при разработке html-документов
- •1. Теоретические сведения
- •2. Краткие сведения о языке JavaScript
- •2.1. Типы данных
- •2.2. Литералы
- •2.3. Операторы
- •2.4. Функции
- •2.5. Классы и объекты
- •2.6. Массивы
- •3. Объекты, методы, свойства и функции JavaScript
- •3.1. Объектная модель
- •3.2. Описание свойств, функций, объектов, методов и событий
- •4. Внедрение java-скриптов в html-документ
- •5. Пример html-документа с java-скриптами
- •Лабораторное задание и порядок его выполнения
- •Требования к отчету
- •Варианты заданий
2. Краткие сведения о языке JavaScript
Язык JavaScript базируется на синтаксисе языка C++. Но при написании java-скриптов не требуется писать функцию main (winmain). Также в JavaScript не указываются типы вводимых переменных. В остальном JavaScript и C++ схожи. То есть, переменные могут быть как локальные, так и глобальные. Допускаются вложенные функции, определяемые в телах других функций. Разрешено определение новых классов. Также в JavaScript допустимо опускать символ ";" везде, кроме определения цикла for.
В языке JavaScript, как и в любом другом языке программирования, введён ряд понятий, определяющих попутно его синтаксис.
2.1. Типы данных
числа например, 42,3.14159, -1.2345E-67
логические (булевы) trueилиfalse
строки например, "Howdy!", 'Howdy!'
пустой указатель null
Этих типов вполне достаточно для описания данных любого рода. Дело в том, что числа не различаются по классу (натуральные, целые или вещественные) или по размерности (8-, 16-, 32-, 64-разрядные) как в других языках программирования. В JavaScript не делается различия между целыми и вещественными числами, что позволяет работать с целыми числами до приблизительно 1.79769e+308 (что соответствует типу double в языке С). Но при работе с большими числами следует помнить, что некоторые операторы (например, операторы сдвига) работают только с младшими 32 битами числа, "отсекая" старшие разряды (1.79769e+308 >> 1 == 0).
При определении переменных их тип не указывается. Поэтому возможно, например, следующее преобразование типов:
var value // Определение переменной. "var" - ключевое слово
value=12; // Присваивание переменной числового значения
value="Text" // Преобразование числовой переменной в строковую
Также следует помнить, что в языке JavaScript различается регистр букв в названиях переменных и функций.
2.2. Литералы
Литералы – literally, то есть "буквально" – способ, которым вJavaScriptпредставляются константы.
Примеры литералов:
12 – 10-ичное целое число;
014 – 8-ичное число;
0xC, 0XC, 0xc, 0Xc– 16-ичные числа;
3.14 – вещественное число;
314e-2, 314E-2 – вещественные числа в экпоненциальной форме;
true, false – логические константы;
"Text\"\b\f\n\r\t" – строка (\"-выходстроки - кавычки,\b- возврат на один символ,\f- перевод страницы,\n- перевод строки,\r- возврат каретки,\t- табуляция);
'"Text"'– строка (двойные кавычки воспринимаются браузером как символы, являющиеся частью строки, ограниченной одинарными кавычками).
2.3. Операторы
Язык JavaScriptподдерживает (с некоторыми отличиями) почти все операторы языкаC++, включая оператор условия (? :), и исключая лишь оператор (do while). Однако слово "do" зарезервировано, так же как и другие ключевые слова языкаC++. ТакжеJavaScriptимеет несколько собственных операторов. Ниже описаны отличия операторовJavaScriptот операторовC++.
>>– сдвиг вправо с заполнением старших разрядом значением старшего разряда (-9 >> 2 == 11111111 11111111 11111111 11110111 >> 2 == 11111111 11111111 11111111 11111101 == -3).
>>>– сдвиг вправо с заполнением старших разрядов нулями (-9 >>> 2 == 11111111 11111111 11111111 11110111 >>> 2 == 00111111 11111111 11111111 11111101 == 1073741821).
+ – сложение чисел или конкатенация строк ("Hello" + ", " + "world" + "!" == "Hello,world!")
+= – сложение чисел или конкатенация строк (x+=y<=> x = x+y).
for in– цикл с поочерёдным присваиванием переменной свойств объекта. Формат:for ( var attrib in obj ) { /*операторы*/ } Например, следующий оператор печатает значения свойств объектаCar, имеющегосвойстваMakeиModel.for (var i in Car) { window.document.write("Car."+i+" = "+Car[i]+"<BR>"); } В результате в окне браузера будет выведен, например, такой текст: "Car.Make=FordCar.Model=Mustang", соответствующий сформированной скриптом частиhtml-документа.
with – оператор аналогичный операторуwithв языкеPascal. Формат:with (obj) { /*операторы*/ } Внутри блокаwithвсе обращения к атрибутам объекта выполняются без указания имени объекта. Например, операторwith (Car) { Model = "Mustang" }равносилен операторуCar.Model = Mustang.
При вычислении выражений cо строками можно получить неожиданный результат.InternetExplorerвычисляет выражения по следующим правилам:
var a="1"
var b=3
var c=a+b // с == "13"
var d=b+a // d == "31"
var e=a-b // e == -2
var f=b-a // f == 2