Лекция: Операторы и выражения
Выражения в языке JavaScript разделяются точкой с запятой; если выражения находятся на разных строках, то в конце выражения точка с запятой может и не ставиться. В этом отличие от языков C++ и Java, в которых точкой с запятой используется для завершения операторов.
Несколько выражений могут объединяться в блок с помощью фигурных скобок { }, однако блоки не определяют область видимости переменных, как в С++ .
Оператор присваивания
Значение присваивается одной переменной или сразу нескольким переменным:
var n = j = k = 2;
Арифметические операторы
В языке JavaScript поддерживаются арифметические операторы: «+», «-», «*», «/», «%», <<+=>>, << -=>>, ...
При этом оператор сложения "+" является перегружаемым, при работе со строками он означает конкатенацию последних, например
s = «str1» + «str2»
Операция инкремента «++», служит для прибавления 1 к операнду, соответственно декремент «--» – используется для вычитания 1 от операнда. Строки в числовом контексте автоматически преобразуются в числа, например
Var x=”5”*”20”;//100
Операторы сравнения
В языке JavaScript поддерживаются следующие операторы сравнения:
«<», «<=», «>», «>=», «!=», «==» – равно; «===» – равно и операнды одинакового типа (тождественно равно, строгое сравнение); «!==» – не равно или операнды разных типов.
Для иллюстрации оператора строгого сравнения приведем пример:
var x = 0;
var y = false;
alert(x==y);
//true из-за приведения операндов в выражении к одному типу
alert(x===y);
//выдаст на экран false, так как операнды разных типов.
Логические операторы
В языке JavaScript поддерживаются следующие логические операторы:
«&&» – логическое И; «||» – логическое ИЛИ; «!» – логическое НЕ.
Оператор «?»
Оператор «?» возвращает значение первого выражения, если условие истинно, и второго выражения, если условие ложно при синтаксисе:
условие? выражение1: выражение2;
Пример использования:
var x = 6; var y = 9;
var res = x < y? «x меньше y»: «x больше или равно y»;
alert(res);
//выведет экран фразу «x меньше y»
Оператор typeof()
Оператор typeof() возвращает строковое значение, которое определяет тип операнда: «number», «string», «boolean», «object», «function» и «undefined».
Условный оператор if
Оператор имеет следующий вид:
if (условие)
// выражение или блок выражений
else
//выражение или блок выражений
Ветка else может отсутствовать.
Операторы организации циклов
Ниже приведен синтаксис для организации циклов. Цикл выполняется, пока значение логического выражения равно true
1. while (условие){
// выражение или блок выражений
}
2. do
// выражение или блок выражений
while (условие);
3.Цикл for имеет синтаксис:
for (нач_значения; условие; изменение_нач_значений){
//выражение или блок выражений
}
Пример цикла for показан ниже:
<!-- пример pr8 -->
<html>
<body>
<script type=«text/javascript»>
for (var i = 0; i < 4; i++) {
alert(i );
}
//на экран последовательно будут выведены числа:0 1 2 3
document.write(«i=»,i);// i=4
</script>
</body>
</html>
4. Оператор цикла for…in служит для перебора и просмотра всех свойств в объекте:
for (имя_переменной in объект)
выражение или блок выражений
Примером может служить перебор всех стилей какого-либо элемента:
<!-- пример pr9 -->
<html>
<head>
<style type=text/css>
#myP{color:green;
font-style: italic;
font-variant:normal;
font-weight: bold;
font-size: 30px;
font-family: arial, sans-serif;}
</style>
</head>
<body>
<p id=«myP»>test</p>
<script type=«text/javascript»>
var obj;
for (obj in document.getElementById(«myP»).style) {
alert(obj+'='+document.getElementById(«myP»).style[obj]);
}
</script>
</body>
</html>
Цикл выведет все свойства объекта style элемента myP.
Операторы continue и break могут применяться во всех циклах, первый служит для перехода к следующей итерации в цикле, второй для выхода из цикла.
Оператор with
Оператор with присоединяет имя объекта к имени свойства объекта. С помощью оператора with можно обращаться с свойствам объекта в сокращенном виде:
with (object) {
//свойства
}
Оператор switch
switch (переменная) {
case условие1: выражение
break;
case условие2: выражение
break;
// ...
case условиеN: выражение
break;
default: выражение
}
Ветка default выполняется, если ни одно из предыдущих условий не выполняется и может отсутствовать.
Метод eval()
Метод eval() считается устаревшим и небезопасным. Метод выполняет код JavaScript, переданный ему строкой в качестве параметра. Пример реализации простейшего калькулятора приведен ниже:
<!-- пример pr11 -->
<html>
<body>
<input type=«text» id=«calc» />//вводится текст выражения
<input type=«button» value=«Calculate!»
onclick=«alert(eval(document.getElementById('calc').value))» />
//вычисляется выражение
</body>
</html>