Роботландский Университет © А.А.Дуванов

СПРАВОЧНИК

содержание
конструкции | операции | функции | слова
Date | Array | String | Math
window | document | коллекции | event | history | location | navigator | screen
события

операции языка

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

операция описание
=
Безусловная операция присваивания.
В отличие от Паскаля, в JavaScript (и в языке Си) конструкция:
переменная = выражение
является не командой присваивания, а операцией присваивания. Разница в том, что операция имеет значение, и его можно использовать, например, в арифметическом выражении.
var x = 20;
var y = 30;
var t;
var z = 100 + (t=x+y);
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
+= -=
*= /=
и т.д.
Безусловная операция присваивания.
Запись вида:
переменная операция= выражение
эквивалентна:
переменная = переменная операция (выражение)
var x = 20;
x += 80;
var y = 30;
y *= x/5;
var t = 8;
t %= (x+y)/100;
var z = (t += 10)+4;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
?
Условная операция.
Используется в виде следующей конструкции:
условие ? выражение1 : выражение2
Значение операции есть выражение1, если условие принимает значение true и выражение2 в противном случае.
var x = 20;
var y = 30;
var t = x<y ? x:y;
var z = x>y ? x:y;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 

арифметические операции

операция описание
+
-
*
/
%
Бинарные операции:
сложение, вычитание, умножение, деление, остаток от деления.
var x = 20;
var y = x+30;
var t = ((x-10)*y)/5;
var z = (t+1)%x;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
-
++
--
Унарные операции:
смена знака, увеличение и уменьшение на один.
В записях вида ++x и --x изменение значения переменной происходит до ее использования, а в записях вида x++ и x-- после.
var x = -20;
var y = x++;
var t = ++x+(++y);
var z = ++x+y++;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 

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

операция описание
==
!=
Операции “равно” и “не равно”.
var x = 20;
var y = x==20;
var t = x!=20;
var z = y!=t;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
>
>=
Операции “больше” и “больше или равно”.
var x = 20;
var y = x>20;
var t = x>=20;
var z = ++x>20;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
<
<=
Операции “меньше” и “меньше или равно”.
var x = 20;
var y = x<20;
var t = x<=20;
var z = --x<20;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 

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

операция описание
&&
Бинарная операция “логическое И”.
Таблица истинности:
операнд1 операнд2 результат
false    false    false
false    true     false
true     false    false
true     true     true

var x = 20;
var y = x==20;
var t = --x<20;
var z = y && t;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
||
Бинарная операция “логическое ИЛИ”.
Таблица истинности:
операнд1 операнд2 результат
false    false    false
false    true     true
true     false    true
true     true     true
var x = 20;
var y = x==20;
var t = x<20;
var z = y || t;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
!
Унарная операция “логическое отрицание”. Таблица истинности:
операнд  результат
false     true
true      false

var x = 20;
var y = x==20;
var t = !(x==20);
var z = !x;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 

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

операция описание
&
Бинарная операция “И” над битами операндов.
Соответствующий разряд результата равен 1, если оба разряда операндов равны 1, и равен 0 в противном случае.
var x = 0xFF;
var y = x & 0x0F;
var t = x & 0xF0;
var z = x & 0x00;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
|
Бинарная операция “ИЛИ” над битами операндов.
Соответствующий разряд результата равен 1, если один из разрядов операндов равен 1, и равен 0 в противном случае.
var x = 0x0F;
var y = x | 0xFF;
var t = x | 0xF0;
var z = x | 0x00;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
^
Бинарная операция “исключающее ИЛИ” над битами операндов.
Соответствующий разряд результата равен 0, если разряды операндов одинаковы, и равен 1 в противном случае.
var x = 0x0F;
var y = x ^ 0xFF;
var t = x ^ 0xF0;
var z = x ^ 0x0F;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
~
Унарная операция “отрицание” над битами операндов.
var x = 0x0F;
var y = 0xFF;
var t = ~x;
var z = ~y;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
<<
Бинарная операция “сдвиг влево”.
Биты первого операнда сдвигаются влево на величину, задаваемую вторым операндом. Младшие “сдвинутые” разряды первого операнда замещаются нулями.
var x = 0x01;
var y = x<<1;
var t = x<<2;
var z = x<<3;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 
>>
Бинарная операция “сдвиг вправо”.
Биты первого операнда сдвигаются вправо на величину, задаваемую вторым операндом. Старшие “сдвинутые” разряды первого операнда замещаются нулями для положительного числа и единицами для отрицательного.
var x = 0x10;
var y = -0x10;
var t = x>>4;
var z = y>>4;
alert("x=" + x + "\ny=" + y + "\nt=" + t + "\nz=" + z); 

порядок выполнения операций

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

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

 

 

содержание письмо автору об авторах