Техника Web-дизайна для студента
Выражения
Выражение — совокупность переменных и литералов, соединенных знаками операций, в результате выполнения которых получается единственное результирующее значение. В программах на JavaScript можно использовать арифметические выражения, логические выражения, выражения сравнения и строковые выражения.
□ Арифметические выражения.
Операции, используемые в арифметических выражениях, приведены в табл. 8.1 в соответствии с приоритетами их выполнения
Таблица 8.1. Арифметические операции |
|
Операции |
Описание операций |
++|.. |. |
Инкремент, декремент, унарный минус |
*, /, % |
Умножение, деление, деление по модулю |
+, - |
Сложение, вычитание |
Операции сложения, |
Вычитания, умножения и деления явля- |
Ются обычными бинарными операциями, т. е. в операции участвуют два операнда и определяется один результат. Эти операции не требуют каких-либо разъяснений.
Операция деления по модулю, также относится к бинарным операциям. Результатом операции является остаток от деле-
Ния первого операнда на второй. Например, в результате выполнения операции с^а1;ок=23%5 переменной с^а1;ок будет присвоено значение 3.
Операции инкремент, декремент и унарный минус относятся к числу унарных операций, т. е. в операции участвует только один операнд. Операция инкремент увеличивает значение операнда на единицу, а декремент — уменьшает на единицу. В качестве операндов операций инкремент и декремент можно использовать только переменные.
Например:
Х=2
++Х
В результате переменная х будет иметь значение 3. Допускается запись знаков операции и после операнда х++, что в данном случае не приведет к изменению результата.
В том случае, когда операция используется в операторе присваивания, положение знака операции влияет на ее результат следующим образом. Если знак операции предшествует операнду, то сначала выполнится операция, а потом переменной слева от знака "=" будет присвоено полученное значение, в противном случае сначала будет выполнено присваивание, а потом выполнится операция.
Например:
Х=2
У=х++
Результат: у=2, х=з;
Х=2
У=++х
Результат: ■ з, х=з.
Все приведенные рассуждения справедливы и для операции декремент, за исключением того, что значения переменных будут не увеличиваться, а уменьшаться на единицу.
Операция унарный минус изменяет знак операнда на противоположный.
Приоритетность выполнения операций убывает от верхней строки к нижней строке. Операции, находящиеся в одной
Строке, имеют равный приоритет и выполняются последовательно слева направо. Приоритет выполнения операций может быть изменен с помощью круглых скобок.
□ Выражения сравнения.
В выражениях сравнения используются операции:
• > — больше;
• < — меньше;
• == — равно;
• >= — больше или равно;
• <= — меньше или равно;
• ! = — не равно.
В качестве операндов операции сравнения можно использовать данные любых типов. Однако для практических целей, как правило, имеет смысл сравнивать числовые данные с числовыми данными, а строковые — со строковыми данными. При сравнении строк сравниваются коды первых символов, а в случае их равенства — коды вторых символов и так далее до первого несовпадения, причем соотношение длин строк значения не имеет. При полном совпадении всех символов равными считаются только строки одинаковой длины, в противном случае меньшей будет более короткая строка. Результат операции сравнения — логическое значение t rue, ссли утверждение справедливо, и false — если нет.
Например:
5>7
Результат: false;
Z=13
W=15
Z<=w
Результат: true.
Очевидно, что сравнение друг с другом литералов не имеет практического значения. Сравнение друг с другом переменных или переменных с константами играет в программировании важную роль, так как результат сравнения, от которого может зависеть дальнейший ход программы, в свою очередь,
Зависит от значений переменных, которые они приобрели к моменту сравнения.
Кроме перечисленных операций сравнения, существуют еще две операции, требующие дополнительных разъяснений:
• === — строго равно;
• ! == — строго не равно.
При выполнении обычных операций равно (==) и не равно (! = ) в случае сравнивания разнотипных данных, они будут преобразовываться к одному типу.
Например:
12=="12"
Результат: true.
При выполнении операций строго равно (===) и строго не равно (!==) преобразование типов не производится. В случае сравнения разнотипных данных результатом всегда будет false.
□ Логические выражения.
В логических выражениях используются операции:
• && — логическая операция И;
• | | — логическая операция ИЛИ;
• ! — логическая операция НЕ.
Операнды всех логических операций должны быть логического типа, результат операции также логический, т. е. t rue ИЛИ false. Операции И и ИЛИ относятся к числу бинарных и результаты этих операций в зависимости от значений операндов приведены в табл. 8.2.
Таблица 8.2. Результаты выполнения логических операций И и ИЛИ
|
Примеры записи логических операций И, ИЛИ:
True && false результат: false; true || false результат: true;
X>5 && X<10
Результат: true при x больше 5, но меньше 10.
Использование в качестве операндов логических литералов не имеет практического значения, и первые два примера приведены лишь для демонстрации записи операций.
Операция НЕ относится к числу унарных операций, она изменяет значение операнда на противоположное.
Примеры логической операции НЕ:
! true
Результат: false;
!false
Результат: true;
X=true ! X
Результат: false.
□ Строковые выражения.
В строковых выражениях операндами являются строки символов. Основная операция над строками — операция соединения строк (конкатенации). Соединение строк обозначается знаком плюс (+). Например:
STR="Java"+"Script"
В результате операции переменной str будет присвоено значение "JavaScript".
□ Смешанные выражения.
В смешанных выражениях допускается использование операций разного типа, из числа приведенных выше. При записи таких выражений следует учитывать приоритетность выполнения операций и в случае необходимости (для повышения приоритета) использовать круглые скобки.
Все рассмотренные операции приведены в табл. 8.3 в порядке убывания приоритетов. Операции, расположенные в одной строке, имеют равный приоритет и выполняются последовательно слева направо.
Таблица 8.3. Приоритетность выполнения операций
|
В качестве примера рассмотрим программу (листинг 8.2), включающую два смешанных выражения. Результаты выражений будем выводить в элементы формы — текстовые строки.
Листинг 8.2. НТМ1_-документ, включающий программу, содержащую смешанные выражения
<ЬШ1>
<11еас!>
<-Ы1;1е>выражения</1;11;1е>
</11еас!>
<Ьос1у>
<:£огт пате=:£1>
<1прЛ type="text" пате="Т1" з1ге="10"хр>
<1прЛ type="text" пате="Т2" з1ге="10">
</1:огт>
<script>
X = 4 Y = 3
F1.T1.value=2*X+l>3*Y&&Y+X<8 f 1.T2.value=2*(X+l)>3*Y&&Y+X<8 </script>
</body>
</html>
В первом выражении операции будут выполняться в следующем порядке:
• Две операции умножения 2*х=8, 3*y=9;
• Две операции сложения 8+1=9, y+x=7;
• Две операции сравнения 9>9=faise, 7<8=true;
• Логическая операция И false&&true=false.
Во втором выражении изменен порядок выполнения операций за счет применения скобок. Операция сложения в скобках выполнится в первую очередь, поэтому результатом первого умножения станет 10. Результат первого сравнения изменится на true. Следовательно, результатом всего выражения также будет являться true.