Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Оцените скорость загрузки страниц сайта

Реактивная
Быстрая
Нормальная
Неважная
Медленная
Черепашья


Результаты
Другие опросы

Всего голосов: 971
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Операторы Оглавление | Назад | Вперёд | Индекс

Глава 4
Операторы

В этой главе рассмотрены все операторы JavaScript. Оператор JavaScript состоит из ключевого слова, используемого с соответствующим синтаксисом. Один оператор может занимать несколько строк. Несколько оператором могут располагаться на одной строке, если отделены символом (;).

Соглашения по синтаксису: Все ключевые слова синтаксиса операторов вводятся жирным шрифтом. Слова шрифтом italic представляют пользовательские имена и операторы. Любой участок в угловых скобках  [ ], является необязательным. {statements} указывает на блок операторов, который может состоять из одного и более операторов, заключённых в фигурные скобки { }.

В таблице перечислены операторы JavaScript.

Таблица 4.1 Операторы JavaScript
break

Прерывает текущий цикл while или for и передаёт управление оператору, идущему после прерванного цикла.

comment

Авторский комментарий, объясняющий работу скрипта. Комментарии игнорируются интерпретатором.

continue

Прерывает выполнение блока операторов while или for и продолжает выполнение цикла со следующей итерации.

do...while

Выполняет специфицированные операторы, пока проверяемое условие не станет false. Этот блок операторов выполняется минимум один раз.

export

Даёт возможность помеченному скрипту предоставлять свойства, функции и объекты другим помеченным и непомеченным скриптам.

for

Создаёт цикл, который состоит из трёх необязательных выражений в скобках, разделённых символом (;), и блока операторов.

for...in

Итерирует специфицированную переменную по всем свойствам объекта. Для каждого свойства отдельно JavaScript выполняет специфицированные операторы.

function

Объявляет функцию со специфицированными параметрами. В качестве параметров принимаются строки, числа и объекты.

if...else

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

import

Даёт скрипту возможность импортировать свойства, функции и объекты из помеченного скрипта, который экспортирует эту информацию.

label

Предоставляет идентификатор, который может использоваться с break или continue для указания места, где программа должна продолжит выполнение.

return

Специфицирует значение, возвращаемое функцией.

switch

Позволяет программе вычислять выражение и пытается сопоставить значение выражение с лэйблом case.

var

Объявляет переменную и, по выбору, может инициализировать её.

while

Создаёт цикл, который вычисляет выражение и, если оно true, выполняет блок операторов. Затем цикл повторяется, пока специфицированное условие true.

with

Устанавливает объект по умолчанию для набора операторов.

break

Используется для прерывания операторов цикла, switch или label.

Прерывает текущий оператор цикла, switch или label и передаёт управление оператору, идущему непосредственно после прерванного цикла.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

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

comment

Авторский комментарий работы скрипта. Комментарии игнорируются интерпретатором.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

// текст однострочного комментария

/* многострочный текст комментария */

Описание

JavaScript поддерживает комментарии в стиле Java:

  • Однострочный комментарий начинается с двойного слэша (//)
  • Многострочный комментарий находится в пределах символов /* и */

Примеры

// Это однострочный комментарий.
/* Это многострочный комментарий. Он может быть любого размера и,
Вы можете размещать его где угодно. */

continue

Рестартует оператор while, do-while, for или label.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

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

do...while

Выполняет специфицированные операторы, пока тестируемое условие не возвратит false. Операторы выполняются минимум один раз.

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

do 
   statements
while (condition);

Параметры

statements

Блок операторов, выполняемый минимум один раз и выполняемый неоднократно, пока условие возвращает true.

condition

Условие. Вычисляется при после каждого прохода цикла. Если condition вычисляется в true, операторы предыдущего блока выполняются снова. Если condition вычисляется в false, управление передаётся оператору, идущему после do while.

Пример

Цикл do итерирует как минимум один раз и повторяет итерации до тех пор, пока i не станет больше 5.

do {
   i+=1
   document.write(i);
while (i<5);

export

Даёт возможность помеченному скрипту предоставлять свои свойства, функции и объекты другим помеченным и непомеченным скриптам.

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

export name1, name2, ..., nameN
export *

Параметры

nameN

Список экспортируемых свойств, функций и объектов.

*

Экспортировать все свойства, функции и объекты скрипта.

Описание

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

См. также

import

for

Создаёт цикл, состоящий из трёх необязательных выражений в скобках, после которых идёт блок операторов цикла.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

for ([initial-expression]; [condition]; [increment-expression]) {
   statements
}

Параметры

initial-expression

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

condition

Условие, вычисляемое при каждом проходе цикла. Если condition вычисляется в true, выполняются операторы в statements. Эта условная проверка не обязательна. При её отсутствии условие всегда вычисляется в true.

increment-expression

Обычно используется для обновления или инкремента переменной-счётчика.

statements

Блок операторов, выполняемых, пока условие вычисляется в true. Это может быть один или несколько операторов. Хотя это и не требуется, хорошим тоном будет отделение (при записи кода) этих операторов от начала оператора for.

Пример

Оператор for стартует с объявления переменной i и инициализирует её в 0. Он проверяет, что i меньше 9, выполняет два следующих оператора и выполняет инкремент i на 1 после каждого прохода цикла.

for (var i = 0; i < 9; i++) {
   n += i
   myfunc(n)
}

for...in

Итерирует специфицированную переменную по всем свойствам объекта. Для каждого свойства JavaScript отдельно выполняет специфицированные операторы.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

for (variable in object) {
   statements
}

Параметры

variable

Переменная для итерации по каждому свойству, объявленная с помощью ключевого слова var. Эта переменная локальна относительно функции, а не (только) цикла.

object

Объект, по свойствам которого производится итерация.

statements

Специфицирует операторы, выполняемые для каждого свойства.

Пример

Эта функция принимает в качестве аргументов объект и имя объекта. Затем происходит итерация по всем свойствам объекта и возвращается строка - список имён и значений свойств.

function show_props(obj, objName) {
   var result = ""
   for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "\n"
   }
   return result
}

function

Объявляет функцию со специфицированными параметрами. В качестве параметров принимаются строки, числа и объекты.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

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
}

См. также

"Function".

if...else

Выполняет набор операторов, если специфицированное условие true. Если условие false, может быть выполнен другой набор операторов.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

if (condition) {
   statements1
}
[else {
   statements2
}]

Параметры

condition

Любое выражение JavaScript, которое вычисляется до true или false. Скобки вокруг условия обязательны. Если условие true, выполняются операторы в блоке statements1.

statements1,
statements2

Любые операторы JavaScript, включая вложенные операторы if. Несколько операторов обязаны заключаться в фигурные скобки.

Описание

Вы не должны использовать простое присвоение в условном операторе. Например, не используйте такой код:

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

Даёт скрипту возможность импортировать свойства, функции и объекты из другого, помеченного, скрипта, экспортирующего информацию.

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

import objectName.name1, objectName.name2, ..., objectName.nameN
import objectName.*

Параметры

objectName

Имя объекта, который будет принимать импортируемые имена.

name1,
name2,
nameN

Список свойств, функций и объектов, импортируемых из экспортирующего файла.

*

Импортирует все свойства, функции и объекты из экспортирующего скрипта.

Описание

Параметр objectName это имя объекта, который будет принимать импортируемые имена. Например, если f и p были экспортированы и если obj это объект импортирующего скрипта, следующий код принимает f и p в импортирующем скрипте как свойства объекта obj.

import obj.f, obj.p

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

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

См. также

export

label

Предоставляет оператор с идентификатором, позволяющий обратиться к нему в любом месте Вашей программы.

Реализован в

JavaScript 1.2, NES 3.0

Например, вы можете использовать label для идентифицирования цикла, а затем использовать операторы break или continue для указания на место, где программа должна прервать цикл или продолжить выполнение.

Синтаксис

label :
   statements

Параметры

label

Любой верный идентификатор JavaScript, не являющийся зарезервированным словом.

statements

Блок операторов. break может использоваться с любым помеченным оператором, а continue - с помеченными циклическими операторами.

Примеры

См. примеры для break и для continue.

См. также

break, continue

return

Специфицирует возвращаемое функцией значение.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

return expression

Параметр

expression

Выражение, возвращающее значение.

Пример

Здесь функция возвращает квадратный корень своего аргумента x, где x это число.

function square(x) {
   return x * x
}

switch

Позволяет вычислять выражение и пытается найти совпадение этого выражения в метке case.

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

switch (expression){
   case label :
      statements;
      break;
   case label :
      statements;
      break;
   ...
   default : statements;
}

Параметры

expression

Значение, проверяемое на совпадение с меткой label.

label

Идентификатор, используемый для совпадения с выражением.

statements

Блок операторов, выполняемых однократно, если expression совпадает с label.

Описание

Если совпадение найдено, программа выполняет ассоциированный оператор. Если предоставленное значение совпадает с несколькими 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

Объявляет переменную и может также инициализировать её.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

var varname [= value] [..., varname [= value] ]

Параметры

varname

Имя переменной. Это любой верный идентификатор.

value

Начальное значение переменной - любое верное выражение.

Описание

Область видимости переменной - текущая функция или, для переменных, объявленных вне функции, - текущее приложение.

Использовать var вне функций не обязательно; Вы можете объявить переменную, просто присвоив ей значение. Однако хорошим стилем будет использование var, который необходим в функциях при следующих обстоятельствах:

  • Если имеется глобальная переменная с тем же именем.
  • Если при рекурсии (или несколькими функциями) используются переменные с тем же именем.

Пример

var num_hits = 0, cust_no = 0

while

Цикл для вычисления выражения; если оно true, выполняется блок операторов. Затем цикл повторяется, пока специфицированное условие true.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

while (condition) {
   statements
}

Параметры

condition

Условие, вычисляемое перед проходом цикла. Если оно true, выполняются операторы последующего блока. Если condition - false, выполняются операторы, идущие после statements.

statements

Блок операторов, выполняемых, пока condition вычисляется в true. Хотя это и не требуется, хорошей практикой может быть делать отступ этих операторов относительно начала оператора.

Примеры

Этот цикл while итерирует, пока n меньше трёх.

n = 0
x = 0
while(n < 3) {
   n ++
   x += n
}

При каждой итерации цикл увеличивает n и прибавляет её к x. Следовательно, x и n получают следующие значения:

  • После первого прохода: n = 1 и x = 1
  • После второго прохода: n = 2 и x = 3
  • После третьего прохода: n = 3 и x = 6

после третьего прохода условие n < 3 больше не true, поэтому цикл завершается.

with

Устанавливает объект по умолчанию для набора операторов.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

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



Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать