HTML, XHTML и CSS на 100%
Шрифт:
В листинге 11.9 демонстрируется работа с арифметическими операциями.
<html>
<head>
<title>Арифметические операции</title>
</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. Арифметические операции
Операции сравнения
Операции сравнения используются для сопоставления операндов. В этих операциях операндами могут быть не только числа, но и строки, логические величины и объекты. В табл. 11.8 приведены все операции сравнения.
В листинге 11.10 показана работа с операциями сравнения.
<html>
<head>
<title>Операции сравнения</title>
</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).Рис. 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).