HTML, XHTML и CSS на сто процентов.
11.3. Выражения. Выражения являются комбинациями операндов с помощью операций. Обычно в качестве операндов выступают значения и переменные, но могут выступать и другие выражения. Например, выражение 4 + 6 складывает два значения, в результате чего получается значение 10. А выражение q=5 присваивает переменной q значение 5. Если манипуляции производятся с одной величиной, то операция называется унарной, а если с двумя, то бинарной. Рассмотрим операции в JavaScript. Операции присвоения. Одной из часто используемых операций является операция присвоения. В простейшем случае эта операция присваивает значение переменной: A=7. Она может одновременно использоваться для нескольких переменных: Msg1=msg2="Привет". Остальные операции присваивания являются комбинацией операции присваивания и арифметической или поразрядной операции (табл. 11.6 и 11.7). Таблица 11.6. Комбинация с арифметическими операциями.HTML, XHTML и CSS на сто процентов. Таблица 11.7. Комбинация с поразрядными операциями.HTML, XHTML и CSS на сто процентов. Арифметические операции. Для работы с числами используют арифметические операции. • Сложение – знак плюс (+). Например, 5 + 7 = 12. • Вычитание – знак минус (-). Например, 67 – 43 = 24. • Умножение – звездочка (*). Например, 2 * 2 = 4. • Деление – косая черта (/). Например, 45 / 5 = 9. • Остаток от деления – процент (%). Например, 7 % 5 = 2. В программировании очень часто встречаются операции увеличения или уменьшения переменной на единицу, которые называются операциями инкремента и декремента. Для обозначения инкремента используется последовательность ++, а для обозначения декремента – последовательность —. Например, i++ является альтернативой выражению i=i + 1. Различают префиксную и постфиксную форму этих операций. В случае префиксной операции сначала выполняется инкремент или декремент, а затем вычисляется выражение: I = 4. ++i * 2 = 10. Если же используется постфиксная операция, то сначала вычисляется выражение, а затем производится увеличение или уменьшение переменной: I = 4. I++ * 2 = 8. Помимо инкремента и декремента, есть еще две унарные арифметические операции: унарный плюс и унарный минус. Унарный минус изменяет знак числа, а унарный плюс преобразует операнд в число. В листинге 11.9 демонстрируется работа с арифметическими операциями. Листинг 11.9. Арифметические операции. <html> <head> <titlе>Арифметические операции</titlе> </head> <body> <h2>Арифметические операции </h2> <pre> <script> Var i=5, z. Document.write("\nПеременная i="+i+"\n"); Z=i+56*2; Document.write("z=i+56*2="+z+"\n"); Z=6.7*2-i; Document.write("z=6.7*2-i="+z+"\n"); Z=i++ +10; Document.write("z=i++ +10="+z+"\n"); Document.write("Переменная i="+i+"\n"); Z=–i *4; Document.write("z=–i *4="+z+"\n"); Document.write("Переменная i="+i+"\n"); Z=(5+11)%8; Document.write("z=(5+11)%8="+z+"\n"); </script> </pre> </body> </html> В этом примере можно заметить, что арифметические операции подчиняются математическим правилам. Например, умножение совершается до сложения (рис. 11.10). Это выполняется за счет приоритета операций, который можно изменить, используя скобки. HTML, XHTML и CSS на сто процентов. Рис. 11.10. Арифметические операции. Операции сравнения. Операции сравнения используются для сопоставления операндов. В этих операциях операндами могут быть не только числа, но и строки, логические величины и объекты. В табл. 11.8 приведены все операции сравнения. Таблица 11.8. Операции сравнения.HTML, XHTML и CSS на сто процентов. В листинге 11.10 показана работа с операциями сравнения. Листинг 11.10. Операции сравнения. <html> <head> <titlе>Операции сравнения</titlе> </head> <body> <h2>Операции сравнения</h2> <pre> <script> Var i=5, m1="строка1"; Var m2; Document.write("\nПеременная i="+i+"\n"); Document.write("i>7 – "); //Результат сравнения. Document.write(i>7); Document.write("\n(3+i)>=8 – "); //Результат сравнения. Document.write((3+i)>=8); M2="строка1". Document.write("\nПеременная m1="+m1); Document.write(", переменная m2="+m2+"\n"); Document.write("m1!=m2 – "); Document.write( m1!=m2); M2="строка2". Document.write("\nПеременная m1="+m1+", переменная m2="+m2+"\n"); Document.write("m1<=m2 – "); Document.write(m1<=m2); M2="5". Document.write("\nПеременная i="+i+", переменная m2="+m2+"\n"); Document.write("i==m2 – "); Document.write(i==m2); Document.write("\ni===m2 – "); Document.write( i===m2); Document.write("\ni===5 – "); Document.write(i===5); </script> </pre> </body> </html> В приведенном коде сравниваются переменные i = 5 и m2 = "5". Они считаются равными, но не идентичными (рис. 11.11). HTML, XHTML и CSS на сто процентов. Рис. 11.11. Операции сравнения. Операции над строками. Как уже говорилось, строки можно сравнивать. Кроме того, строки можно объединять с помощью операции конкатенации (+), что мы уже не раз делали. Например: S1="Здравствуй"; S2=","; S3="Мир!"; S=S1+S2+" "+S3; В итоге переменная S будет содержать строку «Здравствуй, Мир!». Благодаря автоматическому приведению типов можно объединять числа и строки: «год „+1984=“год 1984». Логические операции. Логические операции позволяют комбинировать выражения, возвращающие логические величины. Язык JavaScript поддерживает три логические операции. Операция логического И (&&) возвращает true, если только оба операнда истинны. Например, (1<7)&&(3>2). При этом сначала вычисляется левый операнд. Если он ложен, то второй операнд не вычисляется, что надо учитывать. Так, в строке (3<1)&&(i++<7) операция инкремента переменной i не произойдет. Операция логического ИЛИ (||) возвращает true, если хотя бы один операнд истинен. Например, (2<3) || (1>2). При этом сначала вычисляется левый операнд. Если он истинен, то второй операнд не вычисляется. Операция логического НЕ (!) является унарной и изменяет значение логической величины на обратное. Условные операции. В JavaScript есть одна тернарная операция?:, которая позволяет присвоить значение переменной в зависимости от выполнения условия. Рассмотрим следующий пример: Var sign = (a>=0) ? «Положительное»: «Отрицательное»; В зависимости от результата выражения до вопросительного знака переменная принимает одно из значений: если значение истинно, то вычисляется выражение до двоеточия, если ложно, то выражение, стоящее после двоеточия. В данном случае, если переменная a больше или равна 0, переменная sign принимает значение «Положительное», иначе переменная sign принимает значение «Отрицательное». Поразрядные операции. Очень редко в сценариях JavaScript используются поразрядные операции, позволяющие манипулировать числами на уровне битов. Различают поразрядные логические операции и поразрядные операции сдвига. Для хранения целочисленных значений в JavaScript выделяется 32 бита. Для демонстрации работы поразрядных операций лучше использовать двоичную систему (табл. 11.9 и 11.10). Таблица 11.9. Поразрядные логические операции.HTML, XHTML и CSS на сто процентов. Таблица 11.10. Поразрядные операции сдвига.HTML, XHTML и CSS на сто процентов. Другие операции. Вы уже встречались с операцией typeof, которая возвращает строку с именем типа данных. В табл. 11.11 приведены результаты, возвращаемые этой операцией. Таблица 11.11. Результаты работы операции typeof.HTML, XHTML и CSS на сто процентов. Кроме того, существуют операции, позволяющие обратиться к элементу какой-то структуры данных. При работе с элементами массива используется операция индексирования массива [], позволяющая обратиться к элементу массива: MyArray[5]=56. Для доступа к элементу объекта используется точка (.): ИмяОбъекта.имяСвойства.