9. Операторы языка JavaScript.
Язык JavaScript поддерживает небольшую систему
операторов, необходимых для выполнения интерактивных видов работ в web
страничках.
Операторы JavaScript можно объединить в
следующие группы:
- условные операторы :
if...else
- операторы цикла:
for
while
break
continue
- операторы для работы с объектами:
for...in
new
this
with
- операторы комментария:
//
/*...*/
9.1. Условные операторы .
Условные операторы выполняют заданные действия,
основанные на соблюдении определен-ных условий. Действие выполняется при
логическом значении true проверенного
условия.
В JavaScript имеется один условный
оператор if.
Формат оператора:
if (condition)
{
statements1
}
[ else {
statements2} ]
Условием condition может быть любое
JavaScript выражение, вычисляющее логические значения true или
false, включая вложенные if операторы. Множественное задание
операторов statements должно заключаться в фигурные
скобки.
Пример:
function checkData (){
if (document.form1.threeChar.value.length == 3)
{
return true}
else
{
alert("Enter exactly three characters.
" + document.form1.threeChar.value + " is not
valid.")
return false}
}
9.2. Операторы цикла.
Цикл - группа команд, выполняющаяся многократно в зависимости от задания условия повторения. В JavaScript поддерживается два типа операторов цикла for и while, а также вспомагательные операторы break и continue, выполняющиеся внутри цикла. Другой оператор цикла for...in применяется для объектов.
Оператор for
Цикл типа for выполняется до тех пор пока
заданное условие не примет значение false. Этот оператор цикла аналогичен
традиционному for циклу языка Си.
Формат оператора:
for ([initial-expression;] [condition;]
[increment-expression]) {
statements
}
В начале цикла вычисляются операторы инициализации цикла initial-expression. Операторы тела цикла statements выполняются до тех пор, пока условие condition имеет значачение true. Выражение increment-expression выполняется при каждом повторе цикла.
Последовательность выполнения
цикла:
1. Инициализация цикла - выполняется
выражение initial-expression, если оно имеется. Выражение обычно содержит
несколько счетчиков или переменных цикла.
2.
Вычисляется условное выражение condition. Если его значение равно
false, цикл прекращается.
3. Выполняется
выражение increment-expression.
4.
Выполняются операторы цикла statements и управление передается на шаг
2.
Пример:
<SCRIPT>
function howMany(selectObject) {
var
numberSelected=0
for (i=0; i <
selectObject.options.length; i++) {
if
(selectObject.options[i].selected ==
true)
numberSelected++
}
return
numberSelected
}
</SCRIPT>
<FORM
NAME="selectForm">
<P><B>Choose some music types, then click
the button below:</B>
<BR><SELECT NAME="musicTypes"
MULTIPLE>
<OPTION SELECTED>
R&B
<OPTION> Jazz
<OPTION> Blues
<OPTION> New
Age
<OPTION> Classical
<OPTION> Opera
</SELECT>
<P><INPUT TYPE="button"
VALUE="How many are selected?"
onClick="alert ('Number of
options selected: ' +
howMany(document.selectForm.musicTypes))">
</FORM>
Оператор while.
Оператор цикла while выполняет повторение до тех пор, пока значение заданного условия остается равным true.
Формат оператора:
while (condition) { Проверка условия condition выполняется после
завершения работы операторов цикла statements перед переходом на
повторение цикла. Проверка цикла не непрерывна, и выполняется один раз при
первом вхождении в цикл и повторно при окончании выполнения операторов
цикла.
Пример 1:
n = 0
x = 0
while( n < 3 ) {
n
++
x += n
}
После окончания цикла значения переменных: n = 3, x = 6.
Пример 2. Бесконечный цикл.
while (true) {
alert("Hello, world") }
Оператор break.
Оператор break прекращает выполнение циклов
while или for и передает управление оператору программы,
следующему за циклом.
Пример 1. Цикл заканчивается
при значении i равном 3 и возвращается значение функции 3*x.
function testBreak(x) {
var i = 0
while (i < 6) {
if (i ==
3)
break
i++
}
return i*x
}
Оператор continue.
Оператор continue прекращает выполнение блока операторов цикла while или for и продолжение цикла начинается с новой итерации:
- в while цикле происходит передача
управления на проверку условия condition,
- в
for цикле - передается управление на вычисление выражения
increment-expression.
Пример. Переменная n принимает значения 1, 3, 7 и 12.
i = 0
n = 0
while (i < 5) {
i++
if (i == 3)
continue
n += i
}
9.3. Операторы для работы с объектами.
В JavaScript имеется несколько способов
манипулирования объектами:
- оператор цикла
for...in,
- оператор new,
- with оператор,
- ключевое слово this.
Оператор for...in.
Оператор for...in выполняет итерацию по всем
свойствам объекта. Для каждого имеющегося свойства объекта выполняются заданные
операторы цикла.
Формат оператора
for (variable in object)
{
statements }
Пример. Приведенная функция получает в качестве аргументов объект и его имя В функции перебираются все свойства объекта и в результате формируется текстовая строка с перечислением свойств объекта , их значений и управляющих HTML тегов.
function dump_props(obj, obj_name) {
var result =
""
for (var i in obj)
{
result += obj_name + "." + i + " = " +
obj[i] + "<BR>"
}
result +=
"<HR>"
return result
}
Для приводимого ранее объекта типа car с
свойствами make и model, результатом работы функции будет строка
(с признаком перевода на новую строку):
Вызов функции:
MyCar = new car("Ford","Mustang") // Create new object
dump_props(myCar,"myCar") // Dump
Результат:
myCar.make=Ford
myCar.model=Mustang
Оператор new.
Оператор new позволяет создавать определенные
пользователем объекты.
Формат оператора:
objectName = new objectType ( param1 [,param2] ...[,paramN] )
Ключевое слово this.
Ключевое слово this используется при
обращении к текущему объекту. В общем случае, с помощью this происходит
обращение к вызываемому объекту в
методах.
Формат:
this[.propertyName]
Пример. Функция validate определяет допустимость свойств объекта, заданных нижними и верхними пределами их значений.
function validate(obj, lowval, hival) {
if ((obj.value
< lowval) || (obj.value > hival))
alert("Invalid Value!")
}
Можно вызвать функцию из обработчика событий onChange, используя this для передачи объекта как параметра:
<B>Enter a number between 18 and 99:</B>
<INPUT TYPE =
"text" NAME = "age" SIZE = 3
onChange="validate(this, 18,
99)">
Оператор with.
Оператор with используется для установки
значения умолчания типа объекта для блока операторов. Внутри этого блока
можно не указывать имени объекта при обращении к его свойствам.
Формат
оператора:
with (object){
statements
}
Пример:
var a, x, y
var r=10
with (Math) {
a = PI * r *
r
x = r * cos(PI)
y = r *
sin(PI/2)
}
Комментарии.
Комментарии являются пояснениями автора в его скрипт-программе. Комментарии игнориру-ются интерпретаторами . JavaScript поддерживает задание комментариев в стиле языков Java и Си:
- комментарии в одной строке, заданные двумя слэшами
(//),
- комментарии группы строк задаются как: /*
....... */
Пример:
// This is a single-line comment.
/* This is a multiple-line comment. It
can be of any length, and
you can put whatever you want here. */