- •Лабораторная работа
- •Основы языка JavaScript
- •1. Комментарии.
- •2. Переменные.
- •3. Типы данных.
- •4. Операторы и выражения.
- •5. Преобразования типов в смешанных строково-числовых выражениях.
- •6. Управляющие конструкции языка.
- •If(условие) { инструкции1 [ } else { инструкции2 ] }
- •7. Определения и вызовы функций
- •8. Размещение скриптов на html-странице.
- •9. Динамическое формирование содержания html-страницы из скрипта.
- •10. Подключение скрипта из внешнего файла
3. Типы данных.
В JavaScript используется небольшой набор примитивных типов величин:
Числа (42 или 3.14159). С точки зрения определения между целыми и числами с точкой явных различий не делается. Можно использовать научную нотацию. Различия между целыми и числами с точкой возникают в основном только при вызове функций преобразования типов (parseInt, parseFloat).
Логические (булевы) значения true и false;
Символьные строки "Привет!".
В языке определяется также набор предопределенных объектных типов (Array, Date, Math и т.п.).
4. Операторы и выражения.
Выражения в JavaScript — это любой набор констант, переменных, операторов, и выражений, который приводит к единственному значению. Значение выражения может быть числом, строкой, логическим значением или объектом.
JavaScript не только поддерживает набор операторов (символов операций), который используется в Си/С++, но даже расширяет его.
Например, имеется оператор побитового сдвига вправо >>>. Он отличается от >> тем, что освобождающиеся при сдвиге разряды заполняются нулями, в то время как при сдвиге с помощью >>> эти разряды заполняются знаковым разрядом числа (т.е. выполняет "размножение единицы" для отрицательных чисел). Соответственно, имеется комбинированная операция присваивания >>>=.
По сравнению с Си новым также является то, что оператор + применяется для конкатенации символьных строк.
5. Преобразования типов в смешанных строково-числовых выражениях.
В выражениях с оператором +, где смешаны одновременно числовые и строковые значения, JavaScript автоматически преобразует числовое значение к строковому. Например,
x = "Число: " + 15 // x="Число: 15"
y = 15 + " – число" // x="15 – число"
x = "12"+ 3 // x="123 "
С другой стороны, если в выражении смешаны числовые и строковые значения, а операнды связаны оператором, отличным от +, JavaScript пытается преобразовать строку в число
x = "12" - 3 // x=9
x = 3 * "12.6" // x=37.8
6. Управляющие конструкции языка.
В скриптах JavaScript для организации кода используются типовые управляющие конструкции.
Условный оператор имеет обычную структуру:
If(условие) { инструкции1 [ } else { инструкции2 ] }
Имеется переключатель switch, причем для выделения case могут использоваться не только числа, но и строки.
Поддерживается набор различных операторов цикла for, while, do…while, а также вспомогательные операторы continue и break, смысл которых тот же, что и в Си.
7. Определения и вызовы функций
Определение любой функции состоит из заголовка и тела функции.
Заголовок формируется из:
а) ключевого слова function,
б) имени функции (идентификатор),
в) списка аргументов функции (формальных параметров), заключенного в круглые скобки. Друг от друга аргументы отделяются запятыми. Список может быть пустым.
Тело функции заключается в фигурные скобки.
Пример.
function square(number) {
return number * number;
}
Функция может возвращать значение (с помощью оператора return с заданным выражением) или не возвращать ничего (с оператором return без выражения или обходиться вообще без него).
Так как функция может содержать несколько операторов возврата, в разных ситуациях одна и та же функция может возвращать значения разных типов.
Вызовы функций программируются по обычным правилам.
Пример.
Для вывода текста во всплывающее окно предупреждений вызывается встроенная функция alert с одним аргументом (который может быть строкой, числом или массивом):
alert("Hello, world!")
Все параметры простых типов передаются в функции по значению, т.е. функция работает с копиями этих параметров.
Пример.
function change(z){
z++
}
var x=1
change(x)
alert(x) //1
Однако, если фактическим параметром в вызове функции будет объект, то он будет передан по ссылке (т.е. сам объект). Поэтому изменения свойств объектов внутри функции будут "видны" и вне функции. Это относится, в том числе, и к массивам.
Пример.
function change(z){
z[0]+=1;
z[1]+=3;}
var x=new Array(1,2,3); // Создаем объект-массив с тремя значениями 1,2,3
change(x);
alert(x); //2,5,3 // Два элемента массива изменили значения