- •Саратовский государственный технический университет
- •Введение
- •Три уровня web-документа
- •Навигация
- •Глава 1. Основы Java Script
- •Рекомендации по использованию JavaScript
- •Добавление JavaScript кода в html документы
- •Сокрытие сценариев от устаревших браузеров
- •Определение языка сценариев
- •Атрибут language
- •Атрибут defer
- •1.2. Ввод и вывод данных
- •Alert(сообщение);
- •Confirm(сообщение);
- •Вывод в тело документа
- •Практические задания
- •1.3. Типы данных и значения
- •Целые литералы
- •Шестнадцатеричные и восьмеричные литералы
- •Литералы вещественных чисел
- •Работа с числами
- •Специальные числовые значения
- •Строковые литералы
- •Управляющие последовательности в строковых литералах
- •Преобразование чисел в строки
- •Логические значения
- •Преобразование логических значений
- •Функции
- •Функциональные литералы
- •Объекты
- •Объектные литералы
- •Значение null
- •Значение undefined
- •Объекты Error
- •Преобразование типов
- •Имена переменных
- •Создание переменных
- •Var имя_переменной;
- •Типизация переменных
- •Область видимости переменной
- •Var X; // Объявляем неинициализированную переменную. Значением ее является undefined
- •Элементарные и ссылочные типы
- •Комментарии
- •Арифметические операторы
- •Операторы сравнения
- •Операторы сравнения
- •Оператор in
- •Оператор instanceof
- •Строковые операторы
- •Логические операторы
- •Присваивание с операцией
- •Условный оператор (?:)
- •Оператор typeof
- •Оператор создания объекта (new)
- •Оператор delete
- •Глава 2. Инструкции Java Script
- •Инструкция if - оператор условного перехода
- •If (условие)
- •If (условие1) {
- •If (!х) {// Если переменная username равна null, undefined, 0, "" или NaN, она
- •If (!X) alert('Bы ничего не ввели")
- •Инструкция else if
- •Инструкция switch
- •Практические задания
- •Операторы цикла
- •Инструкция while
- •Цикл do/while
- •Инструкция for
- •I f (условие2){
- •Инструкция for/in
- •Инструкция break
- •Инструкция continue
- •Практические задания
- •Инструкция var
- •Инструкция function
- •Инструкция return
- •Инструкция throw
- •Инструкция try/catch/finally
- •Инструкция with
- •Пустая инструкция
- •Глава 3 Объекты
- •Создание объектов
- •Свойства объектов
- •Объекты как ассоциативные массивы
- •Свойства и методы универсального класса Object
- •Объект String (Строка)
- •Методы String обработки строк
- •X.Split(" ") /* значение - массив из элементов: "Привет", "всем" */
- •Методы String форматирования строк
- •Функции вставки и замены подстрок
- •Insstr ("Привет, друзья", " мои", 7) // "Привет, мои друзья"
- •Insstr("Привет, друзья", " мои", 100) // "Привет, друзья мои"
- •Практическое задание
- •Массивы
- •Чтение и запись элементов массива
- •Добавление новых элементов в массив
- •Длина массива
- •Многомерные массивы
- •Методы массивов
- •Функции обработки числовых массивов
- •Практическое задание
- •Практические задания
- •Объект Date
- •Аргументы
- •Статические методы
- •Практические задания
- •Объект Math (Математика)
- •Свойства Math
- •Методы Math
- •Таймеры
- •If (confirm("Прервать процесс ?"))
- •Глава 4 Основы создания сценариев
Логические значения
Числовые и строковые типы данных имеют большое или бесконечное количество возможных значений. Логический тип данных, напротив, имеет только два допустимых логических значения, представленных литералами true и false. Логическое значение говорит об истинности чего-то, т. е. о том, является это что-то истинным или нет.
Логические значения обычно представляют собой результат сравнений, выполняемых в JavaScript-программах. Например:
a == 4
Это выражение проверяет, равно ли значение переменной a числу 4. Если да, результатом этого сравнения будет логическое значение true. Если переменная a не равна 4, результатом сравнения будет false.
Логические значения обычно используются в управляющих конструкциях JavaScript. Например, инструкция if/else в JavaScript выполняет одно действие, если логическое значение равно true, и другое действие, если false. Обычно сравнение, создающее логическое значение, непосредственно объединяется с инструкцией, в которой оно используется. Результат выглядит так:
if (a == 4) b = b + 1;
else a = a + 1;
Здесь выполняется проверка, равна ли переменная a числу 4. Если да, к значе
нию переменной b добавляется 1; в противном случае число 1 добавляется к значению переменной a.
Вместо того чтобы интерпретировать два возможных логических значения как true и false, иногда удобно рассматривать их как «включено» (true) и «выключено» (false) или «да» (true) и «нет» (false).
Преобразование логических значений
Логические значения легко преобразуются в значения других типов, причем нередко такое преобразование выполняется автоматически.
Если логическое значение используется в числовом контексте, тогда значение true преобразуется в число 1, а false – в 0. Если логическое значение используется в строковом контексте, тогда значение true преобразуется в строку "true", а false – в строку "false".
Когда в качестве логического значения используется число, оно преобразуется в значение true, если оно не равно значениям 0 или NaN, которые преобразуются в логическое значение false.
Когда в качестве логического значения используется строка, она преобразуется в значение true, если это не пустая строка, в противном случае в результате преобразования получается значение false.
Специальные значения null и undefined преобразуются в false, а любые функция, объект или массив, значения которых отличны от null, преобразуются в true.
Если вы предпочитаете выполнять преобразование явно, можно воспользоваться функцией Boolean():
var x_as_boolean = Boolean(x);
Другой способ явного преобразования заключается в использовании двойного оператора логического отрицания:
var x_as_boolean = !!x;
Функции
Функция – это фрагмент исполняемого кода, который определен в JavaScript-программе или заранее предопределен в реализации JavaScript. Хотя функция определяется единожды, JavaScript-программа может исполнять или вызывать ее сколько угодно раз. Функции могут передаваться аргументы, или параметры, определяющие значение или значения, для которых она должна выполнять вычисления; также функция может возвращать значение, представляющее собой результат этих вычислений.
Взаимодействие функции с внешней программой, из которой она была вызвана, происходит путем передачи функции параметров и приема от нее результата вычислений. Впрочем, функция в JavaScript может и не требовать параметров, а также ничего не возвращать.
В JavaScript есть встроенные функции, которые можно использовать в программах, но код которых нельзя редактировать или посмотреть. Все, что мы можем узнать о них, — это описание их действия, параметров и возвращаемого значения.
Кроме использования встроенных функций вы можете создать свои собственные, так называемые пользовательские функции. Часто используемые фрагменты программного кода целесообразно оформлять в виде функций. Такой фрагмент кода заключается в фигурные скобки, а перед ним пишется ключевое слово function, за которым следуют круглые скобки, обрамляющие список параметров.
имя_функции (параметры)
Например:
function square(x) // Функция называется square. Она принимает один аргумент, x.
{ // Здесь начинается тело функции.
return x*x; // Функция возводит свой аргумент в квадрат и возвращает
// полученное значение.
} // Здесь функция заканчивается.
Если требуются параметры, то они указываются в круглых скобках через запятую. Функция может и не иметь параметров. В этом случае в круглых скобках ничего не указывается. Более подробно пользовательские функции будут рассмотрены позднее.
Определив функцию, можно вызывать ее, указав имя, за которым следует заключенный в скобки список необязательных аргументов, разделенных запятыми. Следующие строки представляют собой вызовы функций:
y = Math.sin(x);
y = square(x);
d = compute_distance(x1, y1, z1, x2, y2, z2);
move();
Важной чертой JavaScript является то, что функции представляют собой значения, которыми можно манипулировать в JavaScript-коде. Во многих языках, в том числе в Java, функции – это всего лишь синтаксические элементы языка, но не тип данных: их можно определять и вызывать. То обстоятельство, что функции в JavaScript представляют собой настоящие значения, придает языку большую гибкость. Это означает, что функции могут храниться в переменных, массивах и объектах, а также передаваться в качестве аргументов другим функциям. Очень часто это бывает очень удобно.
Поскольку функции представляют собой значения, такие же, как числа и строки, они могут присваиваться свойствам объектов. Когда функция присваивается свойству объекта, она часто называется методом этого объекта.
Реализации JavaScript предоставляют много предопределенных или встроенных функций, таких как функция Math.sin(), возвращающая синус угла.
Рассмотрим некоторые встроенные функции:
eval(строка) — вычисляет выражение в указанной строке; выражение должно быть написано на языке JavaScript (не содержит тегов HTML).
Пример
var у = 5 // значение у равно 5
var х = "if(y<10) {у = у+2}" // значение х равно строке символов
eval(x) // значение у равно 7
Приведем текст соответствующего HTML-кода со сценарием, содержащим функцию eval():
<html> <body>
<textarea id = "mycode” rows=10 cols = 60> </ textarea >
< textarea id = "myrezult" rows = 3 cols = 60> </ textarea >
<p> <button onclick = "document.all.myrezult.value=eval(mycode.value)"> Выполнить </ button >
< button onclick="document.all.mycode.value=''; document.all.myrezult.value=''">
Очистить</ button >
</p> </body></html>
escape(строка) — возвращает строку в виде %ХХ, где XX — ASCII-код указанного символа; такую строку еще называют escape-последовательностью.
unescape(строка) — осуществляет обратное преобразование.
При взаимодействии браузеров и серверов протоколы передачи данных позволяют передавать не все символы в их естественном виде. Для передачи остальных символов используются их шестнадцатеричные ASCII-коды, перед которыми указывается символ «%».
Например, пробел представляется в escape-последовательности как %20.
escape("How do you do") // значение равно "How%20do%20you%20do«
Пример:
<html>
<body>
<script>
document.write(escape("How do you do")) ;
document.write(unescape("How%20do%20you%20do"));
</script>
</body>
</html>