В этой главе рассмотрены все операторы JavaScript. Оператор JavaScript состоит из ключевого слова, используемого с соответствующим синтаксисом. Один оператор может занимать несколько строк. Несколько оператором могут располагаться на одной строке, если отделены символом (;).
Соглашения по синтаксису: Все ключевые слова синтаксиса операторов вводятся жирным шрифтом. Слова шрифтом italic представляют пользовательские имена и операторы. Любой участок в угловых скобках [ ], является необязательным. {statements} указывает на блок операторов, который может состоять из одного и более операторов, заключённых в фигурные скобки { }.
В таблице перечислены операторы JavaScript.
| Прерывает текущий цикл while или for и передаёт управление оператору, идущему после прерванного цикла. |
| Авторский комментарий, объясняющий работу скрипта. Комментарии игнорируются интерпретатором. |
| Прерывает выполнение блока операторов while или for и продолжает выполнение цикла со следующей итерации. |
| Выполняет специфицированные операторы, пока проверяемое условие не станет false. Этот блок операторов выполняется минимум один раз. |
| Даёт возможность помеченному скрипту предоставлять свойства, функции и объекты другим помеченным и непомеченным скриптам. |
| Создаёт цикл, который состоит из трёх необязательных выражений в скобках, разделённых символом (;), и блока операторов. |
| Итерирует специфицированную переменную по всем свойствам объекта. Для каждого свойства отдельно JavaScript выполняет специфицированные операторы. |
| Объявляет функцию со специфицированными параметрами. В качестве параметров принимаются строки, числа и объекты. |
| Выполняет блок операторов, если специфицированное условие true. Если условие false, может быть выполнен другой набор операторов. |
| Даёт скрипту возможность импортировать свойства, функции и объекты из помеченного скрипта, который экспортирует эту информацию. |
| Предоставляет идентификатор, который может использоваться с break или continue для указания места, где программа должна продолжит выполнение. |
| |
| Позволяет программе вычислять выражение и пытается сопоставить значение выражение с лэйблом case. |
| Объявляет переменную и, по выбору, может инициализировать её. |
| Создаёт цикл, который вычисляет выражение и, если оно true, выполняет блок операторов. Затем цикл повторяется, пока специфицированное условие true. |
|
Используется для прерывания операторов цикла, switch
или label.
Прерывает текущий оператор цикла, switch
или label и передаёт
управление оператору, идущему непосредственно после прерванного цикла.
break [label]
label |
Оператор break
может содержать лэйбл, который позволяет прервать
выполнение помеченного лэйблом оператора. Операторы в помеченном операторе могут быть любого типа.
Пример 1. Эта функция имеет оператор break
, который
прерывает цикл while
, когда e
равно 3, и возвращает значение 3 * x
.
function testBreak(x) {
var i = 0
while (i < 6) {
if (i == 3)
break
i++
}
return i*x
}
Пример 2. Оператор, помеченный как checkiandj
, содержит
помеченный оператор checkj
. Если обнаружен break
,
программа прерывает выполнение оператора checkj
и продолжает
выполнение оставшейся части оператора checkiandj
. Если бы break
имел метку checkiandj
, программа могла бы прервать выполнение
оператора checkiandj
и продолжить выполнение с оператора, идущего после checkiandj
.
checkiandj :
if (4==i) {
document.write("You've entered " + i + ".<BR>");
checkj :
if (2==j) {
document.write("You've entered " + j + ".<BR>");
break checkj;
document.write("The sum is " + (i+j) + ".<BR>");
}
document.write(i + "-" + j + "=" + (i-j) + ".<BR>");
}
continue
, label
, switch
Авторский комментарий работы скрипта. Комментарии игнорируются интерпретатором.
// текст однострочного комментария
/* многострочный текст комментария */
JavaScript поддерживает комментарии в стиле Java:
// Это однострочный комментарий.
/* Это многострочный комментарий. Он может быть любого размера и,
Вы можете размещать его где угодно. */
Рестартует оператор while
, do-while
, for
или label
.
continue [label]
label |
В отличие от оператора break
, continue
не прекращает выполнение цикла: вместо этого,
while
он переходит обратно на
выражение condition/условие
. for
переходит на выражение update
.
Оператор continue
может теперь содержать, по выбору, лэйбл,
позволяющий прерывать выполнение оператора и продолжить выполнение с оператора,
помеченного лэйблом. Этот тип continue обязан находиться внутри оператора цикла,
идентифицированного лэйблом, используемым в continue
.
Пример 1. Здесь цикл while
имеет оператор continue
,
который выполняется, когда значение i
равно 3. Таким образом, n
получает значения 1, 3, 7 и 12.
i = 0
n = 0
while (i < 5) {
i++
if (i == 3)
continue
n += i
}
Пример 2. Оператор, помеченный checkiandj
, содержит
оператор, помеченный checkj
. Если обнаружен continue
,
программа продолжает выполнение от начала оператора checkj
. Каждый
раз при вычислении continue
выполняется итерация оператора checkj
,
пока условие не возвратит false. Если возвращено false, выполняется остальная
часть оператора checkiandj
.
checkiandj
реитерирует, пока его условие не возвратит false. Если
возвращено false, программа продолжает выполнение с оператора, идущего после оператора checkiandj.
Если continue
имеет метку на checkiandj
, программа
может продолжить выполнение от начала оператора checkiandj.
checkiandj :
while (i<4) {
document.write(i + "<BR>");
i+=1;
checkj :
while (j>4) {
document.write(j + "<BR>");
j-=1;
if ((j%2)==0)
continue checkj;
document.write(j + " is odd.<BR>");
}
document.write("i = " + i + "<br>");
document.write("j = " + j + "<br>");
}
break
, label
Выполняет специфицированные операторы, пока тестируемое условие не возвратит false. Операторы выполняются минимум один раз.
do
statements
while (condition);
Цикл do
итерирует как минимум один раз и повторяет итерации до тех пор, пока i не станет больше 5.
do {
i+=1
document.write(i);
while (i<5);
Даёт возможность помеченному скрипту предоставлять свои свойства, функции и объекты другим помеченным и непомеченным скриптам.
export name1, name2, ..., nameN
export *
nameN | |
* |
Обычно информация в помеченном скрипте доступна только для скриптов, помеченных теми же принципалами. Экспортируя свойства, функции или объекты, помеченный скрипт делает эту информацию доступной любому скрипту (помеченному или непомеченному). Получающий скрипт использует оператор import для доступа к этой информации.
import
Создаёт цикл, состоящий из трёх необязательных выражений в скобках, после которых идёт блок операторов цикла.
for ([initial-expression]; [condition]; [increment-expression]) {
statements
}
Оператор for
стартует с объявления переменной i
и
инициализирует её в 0. Он проверяет, что i
меньше 9, выполняет два
следующих оператора и выполняет инкремент i
на 1 после каждого прохода цикла.
for (var i = 0; i < 9; i++) {
n += i
myfunc(n)
}
Итерирует специфицированную переменную по всем свойствам объекта. Для каждого свойства JavaScript отдельно выполняет специфицированные операторы.
for (variable in object) {
statements
}
variable |
Переменная для итерации по каждому свойству, объявленная с помощью ключевого
слова |
object | |
statements |
Эта функция принимает в качестве аргументов объект и имя объекта. Затем происходит итерация по всем свойствам объекта и возвращается строка - список имён и значений свойств.
function show_props(obj, objName) {
var result = ""
for (var i in obj) {
result += objName + "." + i + " = " + obj[i] + "\n"
}
return result
}
Объявляет функцию со специфицированными параметрами. В качестве параметров принимаются строки, числа и объекты.
function name([param] [, param] [..., param]) {
statements
}
Вы можете также определить функцию с использованием конструктора Function
;
см. "Function".
name | |
param | Имя аргумента, передаваемого функции. Функция может иметь до 255 аргументов. |
statements |
Чтобы возвращать значение, функция обязана иметь оператор return
,
который специфицирует возвращаемое значение.
Функция, созданная оператором function
, это Function
-объект,
имеющий все свойства, методы и поведение объекта Function
. См. "Function".
Объявляется функция, которая возвращает общую сумму от продаж в долларах при данном количестве проданных продуктов a, b и c.
function calc_sales(units_a, units_b, units_c) {
return units_a*79 + units_b*129 + units_c*699
}
Выполняет набор операторов, если специфицированное условие true. Если условие false, может быть выполнен другой набор операторов.
if (condition) {
statements1
}
[else {
statements2
}]
Вы не должны использовать простое присвоение в условном операторе. Например, не используйте такой код:
if(x = y)
{
/* здесь - операторы */
}
Если Вам необходимо использовать присвоение в условном операторе, поместите
дополнительные скобки вокруг операции присвоения. Например, if( (x = y) )
.
JavaScript 1.2 и более ранние версии.
Вы можете использовать простое присвоение в условном операторе. Операция
присвоения в условном операторе конвертируется в операцию равенства. Например, if(x = y)
конвертируется в if(x == y)
. В Navigator это выражение выводит
также диалоговое окно с текстом "Test for equality (==) mistyped as assignment (=)? Assuming equality test."
if (cipher_char == from_char) {
result = result + to_char
x++}
else
result = result + clear_char
Даёт скрипту возможность импортировать свойства, функции и объекты из другого, помеченного, скрипта, экспортирующего информацию.
import objectName.name1, objectName.name2, ..., objectName.nameN
import objectName.*
objectName | |
name1, | Список свойств, функций и объектов, импортируемых из экспортирующего файла. |
* | Импортирует все свойства, функции и объекты из экспортирующего скрипта. |
Параметр objectName
это имя объекта, который будет принимать
импортируемые имена. Например, если f
и p
были
экспортированы и если obj
это объект импортирующего скрипта,
следующий код принимает f
и p
в импортирующем скрипте
как свойства объекта obj
.
import obj.f, obj.p
Обычно информация в помеченном скрипте доступна только скриптам, помеченным теми
же принципалами. Экспортируя (используя оператор export
)
свойства, функции или объекты, помеченный скрипт делает эту информацию доступной
любым скриптам (помеченным или непомеченным). Принимающий скрипт использует
оператор import
для доступа к этой информации.
Сценарий обязан загружать экспортирующий скрипт окно, фрэйм или слой до выполнения импорта и использования любых экспортируемых свойств, функций и объектов.
export
Предоставляет оператор с идентификатором, позволяющий обратиться к нему в любом месте Вашей программы.
Например, вы можете использовать label для идентифицирования цикла, а затем
использовать операторы break
или continue
для указания
на место, где программа должна прервать цикл или продолжить выполнение.
label :
statements
См. примеры для break
и для continue
.
break
, continue
Специфицирует возвращаемое функцией значение.
return expression
expression |
Здесь функция возвращает квадратный корень своего аргумента x
, где x
это число.
function square(x) {
return x * x
}
Позволяет вычислять выражение и пытается найти совпадение этого выражения в метке case.
switch (expression){
case label :
statements;
break;
case label :
statements;
break;
...
default : statements;
}
expression | |
label | |
statements |
Блок операторов, выполняемых однократно, если |
Если совпадение найдено, программа выполняет ассоциированный оператор. Если предоставленное значение совпадает с несколькими case, выбирается первый найденный case, даже если cases не равны друг другу.
Программа сначала ищет label, совпадающий со значением выражения, а затем
выполняет ассоциированный оператор. Если совпадающий label не найден, программа
проверяет наличие необязательного оператора по умолчанию, и, если он найден,
выполняет ассоциированный оператор. Если оператор по умолчанию не найден,
программа продолжает выполнение с оператора, следующего после окончания switch
.
Необязательный оператор break
,
ассоциированный с меткой case, гарантирует, что программа выйдет из блока switch
после выполнения совпавшего оператора и продолжит выполнение с оператора,
идущего после switch. Если break
отсутствует, программа выполняет следующий оператор в блоке switch
.
Здесь, если expression
вычисляется в "Bananas", программа находит
совпадение с case "Bananas" и выполняет ассоциированный оператор. Если обнаружен break
,
программа выходит из блока switch
и выполняет оператор, следующий
после switch
. Если break
отсутствует, операторы для case "Cherries" также будут выполнены.
switch (i) {
case "Oranges" :
document.write("Oranges are $0.59 a pound.<BR>");
break;
case "Apples" :
document.write("Apples are $0.32 a pound.<BR>");
break;
case "Bananas" :
document.write("Bananas are $0.48 a pound.<BR>");
break;
case "Cherries" :
document.write("Cherries are $3.00 a pound.<BR>");
break;
default :
document.write("Sorry, we are out of " + i + ".<BR>");
}
document.write("Is there anything else you'd like?<BR>");
Объявляет переменную и может также инициализировать её.
var varname [= value] [..., varname [= value] ]
varname | |
value |
Область видимости переменной - текущая функция или, для переменных, объявленных вне функции, - текущее приложение.
Использовать var
вне функций не обязательно; Вы можете объявить
переменную, просто присвоив ей значение. Однако хорошим стилем будет
использование var
, который необходим в функциях при следующих обстоятельствах:
var num_hits = 0, cust_no = 0
Цикл для вычисления выражения; если оно true, выполняется блок операторов. Затем цикл повторяется, пока специфицированное условие true.
while (condition) {
statements
}
Этот цикл while
итерирует, пока n
меньше трёх.
n = 0
x = 0
while(n < 3) {
n ++
x += n
}
При каждой итерации цикл увеличивает n
и прибавляет её к x
.
Следовательно, x
и n
получают следующие значения:
после третьего прохода условие n < 3
больше не true, поэтому цикл завершается.
Устанавливает объект по умолчанию для набора операторов.
with (object){
statements
}
object | Специфицирует объект по умолчанию для использования в операторах. Скобки вокруг объекта необходимы. |
statements |
JavaScript просматривает любые неквалифицированные имена в наборе операторов, чтобы определить, являются ли имена свойствами объекта по умолчанию. Если неквалифицированное имя совпадает со свойством, то это свойство используется в операторе; иначе используется локальная или глобальная переменная.
Этот оператор with
специфицирует объект Math
как объект по умолчанию. После этого операторы ссылаются на свойство PI
и на методы cos
и sin
без специфицирования объекта. JavaScript принимает объект Math
для этих ссылок.
var a, x, y
var r=10
with (Math) {
a = PI * r * r
x = r * cos(PI)
y = r * sin(PI/2)
}
Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999 Netscape Communications Corporation