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