Операции

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

Выражение x=1+1состоит из двух частей. Сначала вычисляется выражение справа, равное 2. После этого результат присваивается переменной х слева. С другой стороны, 1 + 1 равно 2. Вычисление выполнено, но никакого присваивания не произведено. Когда часть выражения типа вызова метода или функции выполнена, полученное значение не используется.

Язык JavaScript включает в себя значение null для переменных, которым не присвоено никакое значение. Любая попытка использовать переменную, имеющую значение null, в вычисляемом выражении приводит к ошибке, за исключением случая присваивания значения null переменной, например

Специальные операции

. //вызов
[] //индекс
() //аргумент

Точка используется для отделения объектов от их свойств и методов.Квадратные скобки окружают индексы в массивах, таких как формы и их элементы.Круглые скобки имеют два назначения. Во-первых, в них заключаются параметры и аргументы для функций и методов. Во вторых, они используются для изменения порядка сложных вычислений. Хоть два следующих выражения весьма похожи, результаты их вычислений отличаются.
I = 5 * 5 + 10 // возвращает 35
I = 5 * (5 + 10) //возвращает 75

Применение
При вычислении выражений JavaSript начинаетс операций внутри скобок до полного выполнения. В первом примере операция умножения имеет старшинство над операцией сложения, так что JavaScript перемножает 5 и 5, затем прибавляет10 Во втором примере скобки заставляют сначала cложить 5 и 10 и только затем умножить результат на 5.

Унарные операции

++ //инкремент
- - //декремент
! //логическое отрицание
- //унарное вычитание

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

Применение
Когда знаки операций инкремента/декремента помещены перед переменной, в выражении используется новое значение переменной. Если же они помещены после переменной, сначала используется прежнее значение переменной, а затем выполняется операция инкремента/декремента.J = 1
I = J++ //I=1, J=2
I = ++J //I=3, J=3

Операция логического отрицания испопьзуетcя для изменения значения логического выражения на противоположное, хотя значение самой переменной при этом не меняется.
testResult = true
document.write(test.Result) //'"true"
document.write(!testResult) //"false"

Унарный знак минус меняет знак переменной аналогично умножению переменной на - 1.

Бинарные операции

+ //сложение
- //вычитание
* //умножение
/ //деление
% //остаток от деления

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

Применение
Операция вычисления остатка отделения % возвращает только остаток от деления одного операнда на другой. Например:
J2 = % 2 //возвращает 0
13 = 8 % 3 //возвращает 2

Побитовые операции

~ //побитовое дополнение (отрицание)
<< //сдвиг влево
>> //сдвиг вправо
>>> //сдвиг вправо с заполнением нулями
& //побитовое И
^ //исключающее побитовое ИЛИ
! //побитовое ИЛИ

Побитовые операции воздействуют на переменные на уровне бит (О или 1). Операторы сдвига преобразуют левый операнд в 32-битное целое число, сдвинутое на количество бит, указанных справа. Логические побитовые операции преобразуют оба операнда к 32-битным целым числам перед выполнением сравнения.

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

function bitShift() {
I = - 1
for (increment = 0; increment<9; increment++) {document.write(I)
I = I << 1
}
}

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


Результаты логической операции И Бит1 Бит 2 Результат 111010100000

Результаты логической операции исключающее ИЛИ Бит 1 Бит 2 Результат 110011101000

Результаты логической операции ИЛИ Бит 1 Бит 2 Результат 111011101000


bin13 = 13; //1101
bin15 = 15; //1111
bin0 = 0; //0000
document.writeln(bin13 & bin15); // приводит к результату 13 (1101)
document.writeln(bin13 & binO); // приводит к результату 0 (0000)
document.writeln(bin13 ^ bin15); // приводит к результату 2 (0010)
document.writeln(bin13 ^ bin0); // приводит к результату 13 (1101)
document.writeln (bin13 | bin15); // приводит к результату 15 (1111)
document.writeln(bin13 | bin0); // приводит к результату 13 (1101)

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

< //меньше чем
> //больше чем
<= //меньше или равнс чем
>= //больше или равно чем
== //paвно
!= //не равно
?: //выбор по условию

Операции сравнения переменных или литералов возвращают логическое значение.

Применение
Обратите особое внимание на два оператора: .равно» и «не равно».
Двойной знак равенства нужен для того, чтобы отличать oneрацию сравнения от операции присваивания. Для операции «не равно» в языках программирования обычно используется сочетание символов <> . В JavaScript используется добавление символа отрицания к знаку равенства.
Операция выбора по условию представляет собой специальный тип сравнения, который используется только в сочетании с операцией присваивания. Зта операция представляет собой укороченную запись оператора if-then для присвоения значения.
underAge = (age>=21) ? "no" : "yes"
Если результат вычисления выражения в скобках равен true, переменной присваивается значение «no». В противном случае присваивается «yes» (значение после двоеточия).

Логические операции

&& //И
|| //ИЛИ

Логические операции служат для сравнения двух лoгических значений, обычно результатов других операций сравнения.

Применение
Логические операции действуют подобно операциям побито вого И или ИЛИ, но на уровне переменной.
В следующем примере, если переменная age больше или равна 21 и переменная hasID равна true, будут исполнены операторы:
if ( (age>=21) && (hasID) ) {
...операторы...
}
Логическое сравнение может быть закончено до вычисленияправой части выражения, если результат однозначно определяется результатом вычисления левой части.
false && anyExpression //приводит к результату false
true II anyExpression // приводит к результату true

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

= //присваивание
+= //сложение, конкатенация
-= //вычитание
*=//умножение
/= //деление
%= //вычисление остатка от деления
<<= //побитовый сдвиг влево
>>= //побитовый сдвиг вправо
>>>= //побитовый сдвиг вправо с заполнением нулями
&= //побитовое И
^ //исключающее побитовое ИЛИ
!= //побитовое ИЛИ

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

Применение
Например, следующие два оператора выполняют одну и ту же задачу (добавляют 5 к переменной shipping):
shipping =shipping + 5; shipping += 5;
Операция += может также быть использована для конкатенации строк:
sentence = ""
subject = "Собака";
predicate = " шла домой.";
sentence += subject;
sentence += predicate;
document.write(sentence); //в результате
"Собака шла домой."

Старшинство операций

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

вызов, передача параметров. [] ()
инкремент++
декремент --
отрицание !
дополнение ~
унарный минус -
умножение *
деление/ %
сложение+
вычитание -
побитовый сдвиг << >> >>>
сравнение < > <= >=
равенство ==
неравенство !=
побитовое И &
побитовое исключающее ИЛИ ^
побитовое ИЛИ |
логическое ИЛИ ||
выбор по условию ?:
присваивание=
запятая,
<<Назад     Содержание    Далее>>

Hosted by uCoz