- •Саратовский государственный технический университет
- •Введение
- •Три уровня 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 Основы создания сценариев
Функции обработки числовых массивов
Во многих приложениях требуется получить статистические характеристики числовых данных, хранящихся в виде массива: сумму всех чисел, среднее, максимальное и минимальное значения. Здесь мы приведем коды функций, вычисляющих эти величины.
Функция, возвращающая сумму значений всех элементов непустого массива:
function S(aN){
var S=aN[0];
for(var i = 1; i<= aN.length-1; i++){
S += aN[i];
return S
}
Очевидно, для вычисления среднего значения следует просто воспользоваться выражением S(aN)/aN.length.
Функция, возвращающая минимальное значение среди элементов массива:
function Nmin(aN){
var Nmin = aN[0];
for(var i = l ; i <= aN.length-1; i++){
if (aN[i] < Nmin);
Nmin = aN[i]; }
return Nmin }
Функция, возвращающая максимальное значение среди элементов массива:
function Nmax(aN){
var Nmax = aN[0];
for(var i = 1; 1 <= aN.length -1; i++){
if (aN[i] > Nmax)
Nmax = aN[i]; }
return Nmax }
Мы можем создать одну функцию, которая вычисляет все перечисленные выше статистические характеристики и возвращает их как значения массива:
function statistic(aN){
if (aN == 0 || aN == null || aN == "")
return new Array(0,0,0,0)
var S = aN[0]
var Nmin = aN[0]
var Nmax = aN[0]
for(var i = l; i<=aN.length-1; i++){
S += aN[i]
if (aN[i] < Nmin)
Nmin = aN[i]
if (aN[i] > Nmax)
Nmax = aN[i]
}
return new Array(S, S/aN.length, Nmin, Nmax)
}
В начале кода функции statistic() мы проверяем, не является ли параметр пустым. Если это так, то все статистические характеристики считаются равными нулю.
Пример 1. Создание циклического баннера (слайд-шоу).
Создадим массив изображений, которые будут появляться на странице через некоторые промежутки времени.
<html>
<head>
<title> Смена изображений</title>
<script language="JavaScript">
Slide = new Array("./pic/1.gif", "./pic/2.gif", "./pic/3.gif", "./pic/4.gif", "./pic/5.gif", "./pic/6.gif", "./pic/7.gif","./pic/8.gif", "./pic/9.gif");
//Изображения находятся во вложенной папке pic
k=0; Len=Slide.length;
function rotate(){
if (document.images){
k++;
if (k == Len) {
k=0; }
document.banner.src=Slide[k];
setTimeout ("rotate()",1*1000);
}
}
</script>
</head>
<body onload="rotate();">
<img src="./pic/1.gif" name="banner">
</body>
</html>
Практическое задание
1. Доработайте слайд-шоу, добавив кнопку play/stop, при нажатии на которую слайд шоу либо останавливается, либо воспроизводится. Можно вместо одной кнопки можно создать две отдельные: play и stop.
Пример 2. Вывод случайного афоризма на странице. Случайный афоризм появляется при каждом обновлении страницы.
<html>
<head> <title> Случайный афоризм на странице</title>
<script language="JavaScript">
quote= new Array();
author= new Array();
quote[quote.length]="Одни едят, чтобы жить. Другие - живут, чтобы есть.";
author[author.length]="Мольер";
quote[quote.length]="Работа не волк, в лес не убежит";
author[author.length]="Народная мудрость";
quote[quote.length]="Узкий специалист подобен флюсу.";
author[author.length]="Кoзьма Прутков";
quote[quote.length]="Скорость процессоров каждые два года удваивается.";
author[author.length]="Не помню";
quotes = new Array();
quotes = [quote,author]
function getSay() {
var k=Math.floor(Math.random()*(quote.length));
var tmp=("Афоризм " +quotes[0][k]+ "Автор:" +quotes[1][k]+"<br>");
return tmp; }
</script>
</head>
<body > <center>
<script language="JavaScript">document.write(getSay())</script>
</center>
</body>
</html>