Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1744

.pdf
Скачиваний:
5
Добавлен:
07.01.2021
Размер:
1.69 Mб
Скачать

Рис. 14. Вид Web-страницы в окне браузера

2.12.2.Цикл с предусловием while

ВJavaScript цикл while имеет следующую структуру: while (Условие){

Тело цикла

}

Этот цикл работает следующим образом: пока Условие принимает значение истина, Тело цикла выполняется. Если Условие становится ложным, то управление передается оператору, следующему за концом цикла.

Если в Теле цикла вы используете только один оператор, то фигурные скобки можно не применять.

Пример

Пусть требуется ввести данные, например, пять имен. Если пользователь ввел имя, то выдается сообщение: “Вы зарегистрированы, имя пользователя”; если пользователь не ввел свое имя, выдается сообщение: “Вы не ввели данные”. По окончании ввода выдается сообщение в диалоговой панели: “Ввод данных завершен”. В окне браузера выводятся фамилии зарегистрированных пользователей, общее количество зарегистрированных и незарегистрированных пользователей.

<script language="JavaScript"> var i=1

30

var k=0 var s=0

document.write('<b>Системой зарегистрированы следующие пользователи:</b><br>')

while (i<=5){ p=prompt('Введите имя','')

if (p==''){ alert('Вы не ввели данные') k=k+1

}

else

{alert('Вы зарегистрированы, '+p) document.write(i+'. '+p+'<br>') s=s+1

}

i++

}

alert('Ввод данных завершен') document.write('<br>Не зарегистрировано='+k+'<br>') document.write ('Зарегистрировано='+s)

</script>

В данном примере переменная k вычисляет количество незарегистрированных пользователей, а переменная s количество зарегистрированных пользователей.

На рис.15 показано, как будет выглядеть результат работы сценария.

Рис. 15. Вид Web-страницы в окне браузера

31

2.12.3.Цикл с постусловием do … while

ВJavaScript цикл do … while имеет следующую структуру: Do {

Тело цикла

}

while (Условие)

Этот цикл работает следующим образом: Тело цикла

выполняется до тех пор, пока Условие принимает значение истина. Если Условие становится ложным, то управление передается оператору, следующему за концом цикла.

Если в Теле цикла вы используете только один оператор, то фигурные скобки можно не применять.

Отличие цикла с постусловием от цикла с предусловием заключается в том, что в цикле с постусловием Тело цикла обязательно выполняется хотя бы один раз.

Пример

Вводятся имена до тех пор, пока не введено пустое или не нажата кнопка «Cancel». При этом считается количество введенных имен и в окно браузера выводятся введенные имена и их количество.

<script language="JavaScript"> var i=1

document.write("Введенные имена: <br><br>") do {

s=prompt("Введите имя","")

if (s>" ") {document.write(i+". "+s+"<br>") i=i+1 }

}

while (s>" ")

document.write("<br>Всего введено имен:"+(i-1)) </script>

На рис.16 показано, как будет выглядеть результат работы сценария.

32

Рис. 16. Вид Web-страницы в окне браузера

2.12.4.Цикл for (… in …)

ВJavaScript цикл for (… in …) имеет следующую структуру:

for (переменная in выражение) { Тело цикла

}

В этом выражении:

переменная – это декларация переменной; выражение — любое выражение, значением которого является

объект или массив.

Цикл for (…in…) выполняет заданные действия для каждого свойства объекта или для каждого элемента массива и работает следующим образом:

1.Переменной присваивается имя очередного свойства объекта или очередного элемента массива (это зависит от того, является значением выражения объект или массив).

2.Выполняется Тело цикла.

3.Управление передается этапу 1.

При итерации массива переменной последовательно присваиваются значение первого, второго, ..., последнего элемента массива. Однако при итерации свойств объекта невозможно предсказать, в каком порядке они будут присваиваться переменной: этот оператор гарантирует только то, что все они будут просмотрены.

Если в Теле цикла вы используете только один оператор, то фигурные скобки можно не применять.

33

Пример

Следующий сценарий создает новый объект ob, а затем последовательно выводит все его свойства на экран обозревателя:

<script language="JavaScript">

var ob = {"Н" : "Новосибирск", "О" : "Омск", "Т" : "Томск"}; for (var key in ob)

document.write(key + ": " + ob[key] + "<BR>"); </script>

На рис.17 показано, как будет выглядеть результат работы сценария.

Рис. 17. Вид Web-страницы в окне браузера

Глава 3. ОБЪЕКТЫ JAVASCRIPT

3.1. Общие понятия

Объект сочетает в себе несколько типов данных (свойств) и функций (методов), управляющих этими данными, т.е. объект это набор методов и свойств. Каждый элемент данных, сохраненный в объекте, называется свойством. Функции, которые обрабатывают свойства объекта, это методы.

Каждый объект имеет одно или несколько свойств (атрибутов). Доступ к свойствам объекта осуществляется с помощью следующих конструкций:

Объект.Свойство или Объект["Свойство"] Использование методов объекта организовано с помощью

следующих конструкций: Объект.Метод([Параметры])

В JavaScript поддерживаются следующие типы объектов:

Встроенные объекты, которые встроены непосредственно в

JavaScript.

Объекты браузера, представляющие элементы браузера и текущего документа HTML.

34

Пользовательские объекты, которые создаются пользователем. Рассмотрим эти типы объектов подробнее.

3.1.1.Встроенные объекты

Кним относятся следующие объекты, обладающие некоторыми наборами свойств и методов:

Array позволяет создать новый массив;

Boolean создает новое булево выражение;

Date позволяет сохранять в памяти и восстанавливать дату и время;

Function создает новую функцию;

Global соединяет глобальные методы (например, eval) в одном объекте;

Math обеспечивает основные математические функции и константы;

Number представляет собой числовые данные;

Object обеспечивает общие функции всех объектов языка

JavaScript;

RegExp будучи глобальным, сохраняет информацию о результатах совпадений с шаблоном регулярного выражения (при поиске текстовых строк);

String позволяет форматировать и изменять текстовые строки

иуказывать расположение частей строки.

3.1.2.Объекты браузера

Язык сценариев JavaScript позволяет управлять внешним видом загруженной Web-страницы, преобразовывать документ, запускать новые окна и т.д. Для этого в JavaScript включены специальные объекты, которые называются объектами браузера. Каждый такой объект отвечает за определенный элемент Web-страницы: окно, документ, рисунок и т.д. Объекты браузера также имеют свойства, описывающие Web-страницу, и методы, позволяющие управлять частью документа.

К основным объектам браузера относятся следующие объекты, перечисленные ниже в иерархическом порядке:

window – представляет окно браузера;

дочерние объекты объекта window:

35

document – представляет Web-документ;

history – содержит сведения о страницах, посещаемых за текущий сеанс, и методы перехода по ним;

location – содержит сведения о Web-документе, который в текущий момент открыт в окне;

дочерние объекты объекта document:

links[] – содержит сведения о ссылке на другую страницу или метку;

anchors[] – содержит записи о якорях(ссылках) в документе; images[] – содержит записи для каждого объекта image в

документе;

forms[] – содержит записи для каждого объекта form по порядку встречаемости в документе;

frames[] – содержит записи для каждого фрейма-потомка frame в окне, содержащем тег <FRAMESET> по порядку встречаемости.

3.1.3.Пользовательские объекты

Впроцессе разработки Web-страниц иногда возникает потребность в создании собственных объектов, использующих более сложные структуры (например, сценарий управления базой данных).

3.2. Объект String

Объект String содержит свойства и методы работы со строками. Основы работы со строками (описание, синтаксис, конкатенация строк) были описаны ранее в главе 2 (п. 2.1, 2.3, 2.4).

Основные свойства и методы объекта String приведены в табл.3.

 

Методы объекта String

Таблица 3

 

 

 

 

 

 

 

 

Метод или

Описание

 

Результат

свойство

 

 

 

 

1

2

 

3

 

S.length

Возвращает длину строки S

 

S=»Информатика!»

 

(свойство)

(имеет числовой тип данных

 

alert(S.length)

 

 

и может использоваться в

 

Ответ: 12

 

 

математических

 

 

 

преобразованиях)

 

 

 

36

 

 

Продолжение табл. 3

 

 

 

 

1

2

3

 

S.toLowerCase()

Преобразует строку S в

alert(S.toLowerCase())

 

 

символы нижнего регистра

Ответ: информатика!

 

 

(строчные буквы)

 

 

S.toUpperCase()

Преобразует строку S в

alert(S.toUpperCase())

 

 

символы верхнего регистра

Ответ:

 

 

(прописные буквы).

ИНФОРМАТИКА!

 

S.charAt(i)

Возвращает символ с

alert(S.charAt(5))

 

 

номером i из строки S

Ответ: м

 

 

(нумерация начинается с 0)

 

 

S.indexOf(s1)

Возвращает номер первой

alert(S.indexOf("форма"))

 

 

позиции, с которой

Ответ: 2

 

 

подстрока s1 начинается в

 

 

 

строке S

 

 

S.lastIndexOf(s1)

Возвращает номер

alert(S.lastIndexOf("а"))

 

 

последней позиции, с

Ответ: 10

 

 

которой подстрока s1

 

 

 

начинается в строке S

 

 

S.lastIndexOf(s1,k)

Производит аналогичный

alert(S.lastIndexOf("а",9))

 

 

поиск, но начиная с позиции

Ответ: 6

 

 

k, от которой поиск

 

 

 

начинается по направлению

 

 

 

к началу строки

 

 

S.substring(k1,k2)

Возвращает часть строки S

alert(S.substring(2,7))

 

 

от позиции k1 до позиции

Ответ: форма

 

 

k2

 

 

S.substr(k1,p)

Возвращает часть строки S

alert(S.substr (2,5))

 

 

от позиции k1 длиной p

Ответ: форма

 

 

символов

 

 

S.big()

Аналогично использованию

document.write(S.big())

 

 

тега BIG в HTML (крупный

Ответ: информатика!

 

 

шрифт)

 

 

S.blink()

Аналогично использованию

document.write(S.blink())

 

 

тега BLINK (мигание в

 

 

 

Netscape)

 

 

S.bold()

Аналогично использованию

document.write(S.bold())

 

 

тега BOLD (полужирный

Ответ: информатика!

 

 

шрифт)

 

 

S.fontcolor()

Соответствует тегу FONT с

document.write(S.fontcolor(

 

 

атрибутами цвета

"red"))

 

 

 

 

 

37

 

 

Окончание табл. 3

 

 

 

 

1

2

3

 

S.fontsize()

Соответствует тегу FONT с

document.write(S.fontsize(4

 

 

атрибутами размера шрифта

))

 

 

 

Ответ: информатика!

 

S.italics()

Аналогично использованию

document.write(S.italics())

 

 

тега I (курсив)

Ответ: информатика!

 

S.link()

Создание ссылки на другую

document.write(s.link(\

 

 

Web-страницу, в качестве

"http://www.netscape.com")

 

 

аргумента требуется

)

 

 

указание URL для HREF

 

 

Пример

Вводится строка. Выводится в окно браузера сначала жирным, затем курсивом, затем с размером шрифта 5.

<script language="JavaScript"> var S

S=prompt("Введите строку","") document.write(S.bold()+ '<br>') document.write(S.italics()+ '<br>') document.write(S.fontsize(5))

</script>

На рис.18 показано, как будет выглядеть результат работы сценария.

Рис. 18. Вид Web-страницы в окне браузера

Пример

Вводится строка. Заменить в ней все символы «+» на «-». <script language="JavaScript">

var s, s1, i

s=prompt("Введите строку","") // ввод исходной строки N=s.length // вычисление длины строки s

38

s1=""

// определение пустой строки s1

for (i=0; i<N; i++) { // цикл по номерам символов

if

(s.charAt(i) =="+") s1=s1+"-"

// если в строке s стоит «+», то в s1 заносим «-»

else s1=s1+s.charAt(i)

// иначе в строку s1 переносим символ из строки s

}

alert(s1)

</script>

В программе использованы следующие методы объекта String:

-метод length для вычисления длины введенной строки;

-метод charAt(i) для обращения к отдельному символу строки с номером i (нумерация начинается с 0).

3.3. Объект Array

Язык JavaScript не имеет встроенного типа данных для создания массивов, и для работы с массивами используется объект Array и его свойства и методы.

Для создания объекта Array можно применить два взаимозаменяемых способа.

Способ 1 m=new Array(3)

С помощью команды new определяется массив с именем m размерности 3 (нумерация элементов в массиве начинается с 0); всего элементов в массиве 4.

Пример

<html>

<head> <title>Способ 1</title>

<script language="JavaScript"> //создание нового массива m=new Array(3) //заполнение массива m[0]=1

m[1]=2

m[2]=4

m[3]=56

39

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]