- •Саратовский государственный технический университет
- •Введение
- •Три уровня 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 Основы создания сценариев
Инструкция return
Как вы помните, вызов функции с помощью оператора () представляет собой выражение. Все выражения имеют значения, и инструкция return служит для определения значения, возвращаемого функцией. Это значение становится значением выражения вызова функции. Инструкция return имеет следующий синтаксис:
return выражение;
Инструкция return может располагаться только в теле функции. Присутствие ее в любом другом месте является синтаксической ошибкой. Когда выполняется инструкция return, вычисляется выражение и его значение возвращается в качестве значения функции.
Инструкция return прекращает исполнение функции, даже если в теле функции остались другие инструкции. Инструкция return используется для возвращения значения следующим образом:
function square(x) { return x*x; }
Инструкция return может также использоваться без выражения, тогда она просто прерывает исполнение функции, не возвращая значение. Например:
function display_object(obj) {
// Сначала убедимся в корректности нашего аргумента
// В случае некорректности пропускаем остаток функции
if (obj == null) return;
// Здесь находится оставшаяся часть функции...
}
Если в функции выполняется инструкция return без выражения или если выполнение функции прекращается по причине достижения конца тела функции, значение выражения вызова функции оказывается неопределенным (undefined).
JavaScript вставляет точку с запятой автоматически, поэтому нельзя разделять переводом строки инструкцию return и следующее за ней выражение.
Инструкция throw
Исключение – это сигнал, указывающий на возникновение какой-либо исключительной ситуации или ошибки. Генерация исключения (throw) – это способ просигнализировать о такой ошибке или исключительной ситуации.
Перехватить исключение (catch), значит, обработать его, т. е. предпринять действия, необходимые или подходящие для восстановления после исключения. В JavaScript исключения генерируются в тех случаях, когда возникает ошибка времени выполнения, тогда программа явно генерирует его с помощью инструкции throw. Исключения перехватываются с помощью инструкции try/catch/finally.
Инструкция throw имеет следующий синтаксис:
throw выражение;
Результатом выражения может быть значение любого типа. Однако обычно это объект Error или экземпляр одного из подклассов Error. Также бывает удобно использовать в качестве выражения строку, содержащую сообщение об ошибке или числовое значение, обозначающее некоторый код ошибки. Вот пример кода, в котором инструкция throw применяется для генерации исключения:
function factorial(x) {
// Если входной аргумент не является допустимым,
// генерируем исключение!
if (x < 0) throw new Error("x не может быть отрицательным");
// В противном случае вычисляем значение и нормальным образом выходим
// из функции
for(var f = 1; x > 1; f *= x, x--) /* пустое тело цикла */ ;
return f;
}
Когда генерируется исключение, интерпретатор JavaScript немедленно прерывает нормальное исполнение программы и переходит к ближайшему обработчику исключений.
В обработчиках исключений используется конструкция catch инструкции try/catch/finally. Если блок кода, в котором возникло исключение, не имеет соответствующей конструкции catch, интерпретатор анализирует следующий внешний блок кода и проверяет, связан ли с ним обработчик исключений. Это продолжается до тех пор, пока обработчик не будет найден. Если исключение генерируется в функции, не содержащей инструкции try/catch/finally, предназначенной для его обработки, то исключение распространяется на код, вызвавший функцию. Так исключения распространяются по лексической структуре методов JavaScript вверх по стеку вызовов. Если обработчик исключения так и не будет найден, исключение рассматривается как ошибка и о ней сообщается пользователю.
Инструкция throw стандартизована в ECMAScript v3 и реализована в JavaScript 1.4. Класс Error и его подклассы также являются частью стандарта ECMAScript v3, но они не были реализованы до JavaScript 1.5.