Выражения строятся из литералов, переменных, знаков операций, скобок. В результате вычисления выражения получается единственное значение, которое может быть либо числом (целым или вещественным), либо строкой, либо логическим значением. Используемые в выражении переменные должны быть инициализированы. Если при вычислении выражения встречается неопределенная или неинициализированная переменная, то фиксируется ошибка. В JavaScript существует литерал null для обозначения неопределенного значения. Если переменной присвоено значение null, то она считается инициализированной.
Выражения формируются из операндов и обозначений операций. Например, в формуле а*b операндами являются а и b, обозначением операции - знак *.
Операции делятся на унарные (одноместные) или бинарные (двуместные). Выражение записывается либо в виде +А, если + - обозначение унарной операции, либо А + В, если + - обозначение бинарной операции. Вычисление выражения ФА сводится к вычислению операнда А и применению операции + к значению операнда. Вычисление выражения вида АФВ состоит из следующих шагов:
1. Вычисляются А и В.
2. Операция применяется к значению операндов, полученных на шаге 1.
В зависимости от типа вычисленного значения выражения можно разделить на арифметические, логические и строковые. Арифметические выражения получаются при выполнении операций, перечисленных в табл. 1.1.
Таблица 1.1.Арифметические операции
Операция
Название
+
Сложение
-
Вычитание
*
Умножение
/
Деление
%
Остаток от деления целых чисел
++
Увеличение значения операнда на единицу
--
Уменьшение значения операнда на единицу
Операторы в выражении вычисляются слева направо в соответствии с приоритетами арифметических операций. При необходимости с помощью скобок можно изменить порядок выполнения операций. В языке JavaScript определены операторы, в которых производятся арифметические действия над левым и правым операндом и результат присваивается переменной, заданной левым операндом. Операции так называемой сокращенной формы присваивания представлены в табл. 1.2.
Таблица 1.2.Сокращенные формы оператора присваивания
Оператор
Эквивалентный оператор присваивания
X += Y
X = -X+Y
X -= Y
X = X-Y
X *= Y
X = X*Y
X /= Y
X = X/Y
X %= Y
X = X%Y
Операции отношения применимы к операндам любого типа. Результат операции- логическое значение true, если сравнение верно, и false - в противном случае. Перечислим операции сравнения:
· < (меньше);
· <= (меньше или равно);
· == (равно);
· != (не равно);
· >= (больше или равно);
· > (больше).
Операция ! (логическое НЕ) применяется к операндам логического типа, если значение операнда а равно true, то значение выражения !а - false, если значение операнда а равно false, то значение выражения !а - true. Результат применения логических операций && (логическое И) и и (логическое ИЛИ) приведен в табл. 1.3.
Таблица 1.3.Логические операции
А
В
A&&B
A||B
true
true
true
true
true
false
false
true
false
true
false
true
false
false
false
False
Значение выражения А&&В истинно, если истинны оба операнда, и ложно в противном случае. Значение выражения А | |в истинно, если значение хотя бы одного из операндов истинно, и ложно в противном случае.
Над строковыми значениями определена операция конкатенация (соединение) строк. Обозначается операция знаком плюс. Результатом выполнения этой операции является строка, состоящая из строковых значений операндов, например, в результате выполнения оператора присваивания
st = "текущее "+"состояние"
переменная st получит значение "текущее состояние". Рассмотрим еще один пример. Пусть выполнено
stl = "текущий " st2 = "момент"
В результате выполнения
stl += st2
переменная st1 получит значение "текущий момент".
Приоритет операций определяет порядок, в котором выполняются операции в выражении. В табл. 1.4 перечислены рассмотренные операции в порядке убывания приоритетов.