Сценарии (скрипты)
http://javascript.ru/
Скрипт, выполняемый на стороне клиента (клиентский), это программа, которая может быть загружена вместе с документом HTML или встроена прямо в него. Программа выполняется на клиентской машине при загрузке документа или в другое время, например, если активируется гиперссылка. Поддержка скриптов языком HTML не зависит от языка скриптов.
Скрипты, таким образом, позволяют авторам расширить возможности документов HTML, как активные, так и интерактивные. Например:
· Сценарии могут выполняться по мере загрузки документа для динамической модификации содержимого этого документа.
· Сценарии могут находиться в форме и обрабатывать ввод данных пользователем. Части формы могут динамически заполняться на основе значений других полей. Можно также проверять соответствие введённых данных значениям определённого диапазона, эти поля могут быть взаимосвязаны и т.д.
· Скрипты могу запускаться событиями, происходящими в документе: загрузка документа, выгрузка, передача фокуса элементу, движение мыши и т.д.
|
|
· Скрипты могут быть связаны с ЭУ (напр., кнопками) для создания графического интерфейса пользователя.
Есть два вида скриптов, которые могут быть включены в документ HTML:
· выполняемые однократно при загрузке документа. Скрипты внутри элемента SCRIPT выполняются при загрузке документа. Для браузеров, которые не могут или "не хотят" выполнять скрипты, авторы могут включить альтернативное содержание с помощью элемента NOSCRIPT.
· выполняемые каждый раз при возникновении определённого события. Эти скрипты могут быть подключены к нескольким элементам с помощью атрибутов внутренних событий.
SCRIPT
Для вставки скрипта используются теги <script></script>.
Список атрибутов тега script:
· Type – (обязательный) используется для задания языка. Например:
· < script type="text/javascript">
· Language – (не рекомендуется) определяет язык скрипта (ранее использовался вместо type). Например: language="JavaScript"
· Src – URL внешнего скрипта.
· Defer – если задан, то выполнение скрипта может быть отложено.
Блок <script></script> обычно размещается внутри блока HEAD. Возможно создание дополнительных блоков сценариев, в том числе и в блоке BODY.
NOSCRIPT
Блок <NOSCRIPT> </NOSCRIPT> даёт возможность предоставить альтернативное содержимое, если скрипт не выполняется.
Есть вероятность того, что браузеры, не распознающие элемент SCRIPT, будут рассматривать его содержимое как текст. Некоторые машины скриптов, в том числе для языков JavaScript, VBScript и Tcl, разрешают включение операторов скрипта в комментарий. Браузеры, не распознающие элемент SCRIPT, будут тогда игнорировать комментарий, в то время как более совершенные машины скриптов "поймут", что скрипт внутри комментария должен выполняться.
|
|
Машина JavaScript допускает "<!--" как начало элемента SCRIPT и игнорирует оставшиеся символы до конца строки. JavaScript интерпретирует "//" как начало комментария до конца текущей строки. Это необходимо, чтобы спрятать "-->" от разборщика JavaScript.
Язык JavaScript
Каждый оператор JavaScript начинается с новой строки (что не обязательно, но рекомендуется) и заканчивается точкой с запятой (что также не обязательно, если оператор является последним в строке). Блок - это набор операторов, заключенный в фигурные скобки {}.
Комментарии в JavaScript могут быть однострочными и многострочными. Однострочные комментарии начинаются с символов // и продолжаются до конца текущей строки, как показано в приведенном выше примере. Многострочные комментарии заключаются в маркеры /* и */, например:
/* Это пример комментария,
содержащего несколько строк. */
Следующие имена являются ключевыми словами языка JavaScript и не могут употребляться в качестве идентификаторов:
break delete function return typeof
case do if switch var
catch else in this void
continue finally instanceof throw while
default for new try with
Идентификаторы используются в JavaScript в качестве имен переменных. Они могут начинаться с латинской буквы, символа "$" (знак доллара) или символа "_" (подчеркивание) и должны состоять из латинских букв, цифр и символов "$" и "_". Знак доллара рекомендуется использовать только в идентификаторах программ, которые автоматически генерируются другими программами. Идентификаторы не могут совпадать с зарезервированными словами. Два идентификатора считаются равными, если они текстуально совпадают; это означает, что JavaScript проводит различие между строчными и прописными буквами.
Переменные используются в качестве символических имен, принимающих различные значения. Имена переменных задаются идентификаторами. Переменная создается в момент ее декларации. JavaScript позволяет декларировать переменную двумя способами:
· С помощью ключевого слова var, например, var x; или var x = 21;.
· Просто присваиванием переменной значения, например x = 21;.
Если декларация переменной не содержит присваивания ей значения, то ее значением считается undefined. Мы можем проверять, определено ли значение переменной, и предпринимать соответствующие действия. Пример более развернутой декларации переменных:
var a = 0, b, c = "текст", x, y = false;
Переменная декларированная вне поля действия функций является глобальной. Переменная внутри функции имеет аналогичную область действия и называется локальной.
Константы используются для задания постоянных значений. В JavaScript имеется несколько типов констант, соответствующих его встроенным типам, а именно:
· нулевая константа null типа Null;
· логические константы true (истина) и false (ложь) типа Boolean;
· строковые константы типа String, например, "Привет всем!";
· числовые константы типа Number, например, 21 или 3.1415926.
Выражения в JavaScript, как и в других языках программирования, представляют собой комбинации переменных, констант и операций, дающие осмысленный результат. Этот результат может быть числом, текстовой строкой, логическим значением или объектом. Соответственно все выражения JavaScript подразделяются на арифметические, строковые, логические и объектные.
Все операции в JavaScript подразделяются на следующие: операции сравнения, арифметические операции, битовые операции, логические операции, строковые операции, операции присваивания, прочие операции.
Операции сравнения
Операция | Название | Описание |
a < b | Меньше | Возвращает true, если левый операнд меньше, чем правый операнд. |
a > b | Больше | Возвращает true, если левый операнд больше, чем правый операнд. |
a <= b | Не больше | Возвращает true, если левый операнд меньше или равен правому операнду. |
a => b | Не меньше | Возвращает true, если левый операнд больше или равен правому операнду. |
a == b | Равно | Возвращает true, если левый операнд равен правому операнду. |
a!= b | Не равно | Возвращает true, если левый операнд не равен правому операнду. |
a === b | Тождественно | Возвращает true, если левый операнд тождественно равен правому операнду. |
a!== b | Не тождественно | Возвращает true, если левый операнд тождественно не равен правому операнду. |
Примеры:
|
|
var x = "3";
a = x == 3; // a равно true
b = x === 3; // b равно false (разные типы)
Арифметические операции
Операция | Название | Описание |
a + b | Сложение | Возвращает сумму двух операндов. |
a - b | Вычитание | Возвращает разность от вычитания правого операнда из левого. |
a * b | Умножение | Возвращает произведение двух операндов. |
a / b | Деление | Возвращает частное от деления левого операнда на правый. |
a % b | Остаток по модулю | Возвращает целый остаток от деления левого операнда на правый. Плавающие числа перед операцией округляются до целых. |
++ | Инкремент | Унарная операция. Увеличивает значение переменной на 1. Если используется как префикс (++a), возвращает значение операнда после увеличения его на 1. Если используется как постфикс (a++), возвращает значение операнда перед увеличением его на 1. |
-- | Декремент | Унарная операция. Уменьшает значение переменной на 1. Если используется как префикс (--a), возвращает значение операнда после уменьшения его на 1. Если используется как постфикс (a--), возвращает значение операнда перед уменьшением его на 1. |
-a | Смена знака | Унарная операция. Возвращает арифметическое отрицание операнда. |
Примеры:
var i, j, k;
i = 19 % 6.8; // i равно 5
k = 2;
j = k++; // j равно 2, k равно 3
j = ++k; // j и k равны 4
Битовые операции
Операция | Название | Описание |
a & b | Побитовое AND | Возвращает в каждой битовой позиции 1, если соответствующие позиции обоих операндов равны 1. |
a | b | Побитовое OR | Возвращает в каждой битовой позиции 1, если соответствующая позиция хотя бы одного операнда равна 1. |
a ^ b | Побитовое XOR | Возвращает в каждой битовой позиции 1, если соответствующая позиция ровно одного операнда равна 1. |
~a | Побитовое NOT | Унарная операция. Инвертирует каждую битовую позицию операнда. |
a << b | Сдвиг влево | Сдвигает двоичное представление левого операнда влево на количество бит, заданное вторым операндом. Освобождающиеся справа биты заполняются нулями. |
a >> b | Арифметический сдвиг вправо | Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются старшим (знаковым) битом. |
a >>> b | Логический сдвиг вправо | Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются нулями. |
Примеры:
|
|
var i, j, k;
i = 15; j = 9;
k = i & j; // k равно 9 (1111 & 1001 = 1001)
k = i | j; // k равно 15 (1111 | 1001 = 1111)
k = i ^ j; // k равно 6 (1111 ^ 1001 = 0110)
i = -14; // двоичное значение 11111111 11111111 11111111 11110010
j = i >> 2; // j равно -4 (11111111 11111111 11111111 11111100)
k = i >>> 2; // k равно 1073741820 (00111111 11111111 11111111 11111100)
Логические операции
Операция | Название | Описание |
a && b | Логическое AND | Возвращает true, если оба операнда истинны. Если первый операнд ложен, то возвращает false, не вычисляя значение второго операнда. |
a || b | Логическое OR | Возвращает true, если хотя бы один операнд истинен. Если первый операнд истинен, то возвращает true, не вычисляя значение второго операнда. |
!a | Логическое NOT | Унарная операция. Возвращает true, если операнд ложен. |
Строковые операции
На сегодняшний день JavaScript поддерживает единственную строковую операцию, а именно конкатенацию строк, которая обозначается символом "+". Если хотя бы один операнд является строкой, то результатом операции является слияние строк-операндов. Примеры:
k = "Моя " + "строка"; // k равно "Моя строка"
text = "Результат: " + 123; // text равно "Результат: 123"