Операции присваивания

Операция Значение
a += b a = a + b
a -= b a = a - b
a *= b a = a * b
a /= b a = a / b
a %= b a = a % b
a <<= b a = a << b
a >>= b a = a >> b
a >>>= b a = a >>> b
a &= b a = a & b
a |= b a = a | b
a ^= b a = a ^ b

 

Прочие операции

· Условная операция

· Операция запятая

· Операция delete

· Операция in

· Операция instanceof

· Операция new

· Операция this

· Операция typeof

· Операция void

Условная операция - это единственная тернарная операция в JavaScript. Она имеет вид:

test? value1: value2

где test - любое логическое выражение, а value1 и value2 - любые выражения. Если test истинно, то операция возвращает значение value1, в противном случае она возвращает значение value2. Пример:

var status = (age >= 18)? "взрослый": "подросток";

Операция запятая вызывает последовательное вычисление значений двух выражений и возвращает второе из них. Она имеет вид:

expr1,expr2

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

Пример:

for (i = 0; i < 10; i++, j++) {k = i + j;}

Операция delete удаляет свойство объекта или элемент массива. Она имеет вид:

delete expr

где expr - любое выражение, значением которого является свойство объекта или элемент массива. Если удаление прошло успешно, то операция возвращает значение true; если нет (например, если свойство объекта не может быть удалено), то она возвращает значение false. Эта операция может также применяться для удаления неявно декларированных переменных (т. е. тех, декларация которых не содержит ключевого слова var).

Операция in возвращает true, если левый операнд является свойством правого операнда. Она имеет вид:

property in object

где property - строковое выражение, значением которого является имя свойства, или числовое выражение, задающее номер элемента массива, а object - любое объектное выражение.

Операция instanceof возвращает true, если данный объект относится к данному классу объектов. Она имеет вид:

object instanceof type

где object - любое объектное выражение, а type - имя класса объектов.

Операция new создает новый объект путем вызова конструктора объектов. Она имеет вид:

new type(arguments)

где type - имя конструктора, а arguments - список параметров, разделенных запятыми, используемых для инициализации объекта. Если список параметров пуст, то круглые скобки можно опустить. Примеры:

myObject = new Object;

myArray = new Array();

myDate = new Date("May 21 1958");

myDay = new Date(1958,5,21);

Операция this возвращает указатель на текущий объект. Она должна использоваться в выражениях вида:

this.property

где property - имя свойства объекта.

Эта операция широко применяется в обработчиках событий HTML для указания на объект, вызвавший данное событие.

Операция typeof возвращает строку, содержащую информацию о типе операнда. Она имеет вид:

typeof expr или typeof(expr)

где expr - любое выражение. Возвращаемое значение может быть одной из шести строк: "number" (число), "string" (строка), "boolean" (логическое значение), "object" (объект), "function" (функция) или "undefined" (неопределенное значение).

Операция void вычисляет значение выражения и возвращает undefined. Она имеет вид:

void expr или void(expr)

где expr - любое выражение. Эта операция полезна в тех случаях, когда мы хотим вычислить значение выражения, но не хотим, чтобы оно передавалось последующей части сценария.

Приоритеты операций

Ниже приведен список всех операций языка JavaScript в порядке убывания их приоритетов; операции, расположенные в одной строке, имеют равный приоритет.

·. [] ()

· ++ -- - ~! delete new typeof void

· / %

· + -

· << >> >>>

· < <= > >= instanceof

· ==!= ===!==

· &

· ^

· |

· &&

· ||

·?:

· = += -= *= /= %= <<= >>= >>>= &= ^= |=

·,

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

 

Операторы и функции

Условный оператор if:else позволяет проверить определенное условие и, в зависимости от его истинности, выполнить ту или иную последовательность операторов. Он имеет две формы:

· if (условие) оператор1

· if (условие) оператор1 else оператор2

Здесь условие - это любое выражение, значение которого может быть преобразовано к логическому типу, оператор1 и оператор2 - любые группы операторов JavaScript; если эти группы содержат более одного оператора, то они должны быть заключены в фигурные скобки {}.

Оператор выбора switch выполняет ту или иную последовательность операторов в зависимости от значения определенного выражения. Он имеет вид:

switch (выражение) {

case значение:

операторы

break;

case значение:

операторы

break;

...

default:

операторы

}

Здесь выражение - это любое выражение, значение - это возможное значение выражения, а операторы - любые группы операторов JavaScript.

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

Операторы цикла

Цикл - это последовательность операторов, выполнение которой повторяется до тех пор, пока определенное условие не станет ложным. JavaScript содержит три оператора цикла: for, while и do:while, а также операторы break и continue, которые используются внутри циклов.

Оператор цикла for имеет вид:

for (инициализация; условие; изменение) оператор

Здесь инициализация и изменение - это любое выражения, условие - любое выражение, значение которого может быть преобразовано к логическому типу, оператор - любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}. Инициализация может содержать декларацию переменной.

Оператор for выполняется следующим образом:

1. Выполняется выражение инициализация (обычно это выражение инициализирует счетчик или счетчики цикла).

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

3. Выполняется оператор.

4. Выполняется выражение изменение (обычно это выражение увеличивает или уменьшает счетчик или счетчики цикла) и управление передается этапу 2.

Оператор цикла while имеет вид:

while (условие) оператор

Здесь условие - любое выражение, значение которого может быть преобразовано к логическому типу, оператор - любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}.

Оператор while выполняется следующим образом:

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

2. Выполняется оператор и управление передается этапу 1.

Оператор цикла do:while имеет вид:

do оператор while (условие)

Здесь условие - любое выражение, значение которого может быть преобразовано к логическому типу, оператор - любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}.

Оператор do: while выполняется следующим образом:

1. Выполняется оператор.

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

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

Этот оператор отличается от оператора while тем, что цикл обязательно выполняется хотя бы раз.

Метки операторов

Любой оператор или блок операторов в сценарии на языке JavaScript может иметь любое количество меток. Метки используются операторами break и continue для указания того, к какому оператору они относятся. Помеченный оператор имеет вид:

метка: оператор

В качестве метки может использоваться любой идентификатор, который не является зарезервированным словом.

Хотя в современном программировании использование меток считается дурным тоном, в некоторых случаях их применение существенно упрощает логику программы. Чаще всего это происходит, когда метки используются для передачи управления из глубоко вложенного цикла к внешнему.

Оператор break прерывает выполнение текущего цикла, оператора switch или помеченный оператора и передает управление оператору, следующему за прерванным. Этот оператор может употребляться только внутри циклов while, do:while, for или for:in, а также внутри оператора switch. Он имеет две формы:

break

break метка

Первая форма оператора прерывает выполнение самого внутреннего из циклов или операторов switch. Вторая форма оператора прерывает выполнение оператора с заданной меткой.

Оператор continue завершает текущую итерацию текущего цикла или цикла, помеченного соответствующей меткой, и начинает новую итерацию. Этот оператор может употребляться только внутри циклов while, do:while, for или for:in. Он имеет две формы:

continue

continue метка

Первая форма оператора завершает текущую итерацию самого внутреннего из циклов. Вторая форма оператора завершает текущую итерацию оператора с заданной меткой. При этом переход к следующей итерации цикла происходит следующим образом:

· циклы while и do:while проверяют условие цикла и, если оно истинно, начинают очередное выполнение цикла;

· цикл for выполняет выражение изменение, проверяет условие цикла и, если оно истинно, начинает очередное выполнение цикла;

· цикл for:in переходит к следующему полю переменной и начинает очередное выполнение цикла.

Оператор for:in выполняет заданные действия для каждого свойства объекта или для каждого элемента массива. Он имеет вид:

for (переменная in выражение) оператор

Здесь переменная - это декларация переменной, выражение - любое выражение, значением которого является объект или массив, оператор - любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}.

Оператор for:in выполняется следующим образом:

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

2. Выполняется оператор.

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

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

Функции

Декларация функции

Функции являются одним из основных механизмов языка JavaScript; они охватывают ту область, которая в других языках программирования реализуется подпрограммами, процедурами и функциями. Функция в JavaScript - это набор операторов, выполняющих определенную задачу.

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

function имя(аргументы?) {

операторы

}

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

Пример:

function cube(number) {

return number * number * number;

}

Переменные, декларированные в теле функции, являются локальными, т. е. недоступны вне ее тела. Важно понимать, что появление декларации функции в тексте сценария не означает ее немедленного выполнения; тело функции будет выполняться только тогда, когда какой-либо оператор будет содержать вызов этой функции. Например, функция из предыдущего примера может быть вызвана так:

var x = cube(5);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: