Переменные типа Undefined и Null
Тип Undefined используется для несуществующих переменных или переменных, значения которых еще не определены. В следующем примере переменная x будет иметь значение Undefined – то есть не определена.
var x;
Тип Null означает пустое значение. Пример объявления пустой переменной:
var x = null;
Массивы
В JavaScript массив – это упорядоченная коллекция различных данных. Все элементы массива пронумерованы, первый элемент массива имеет нулевой индекс. Доступ к определенному элементу массива осуществляется с помощью квадратных скобок и номера этого элемента. Пример:
myArr[3] = “Hello!”;
var x = myArr[3];
Объявление пустого массива и массива, содержащего данные:
var emptyArr = [];
var filledArr = ["Hello", "World"];
Массивы могут быть многомерными. Объявление и обращение к многомерному массиву выглядит так:
var myArr = [[1,2],[3,4],[5,6]];
alert(myArr[2][1]);
//создается массив размером 3х2 и выводится элемент, содержащийся
в третьей строке, во втором столбце, равный 6.
Так как по своей сути массив представляет собой объект, его можно объявлять следующим образом:
var myArr = new Array();
Операторы и выражения
Выражения в языке JavaScript разделяются точкой с запятой; если выражения находятся на разных строках, то в конце выражения точка с запятой могут не ставиться.
Несколько выражений могут объединяться в один блок с помощью фигурных скобок { }.
Оператор присваивания
Значение присваивается одной переменной или сразу нескольким переменным:
var n = j = k = 2;
Арифметические операторы
В языке JavaScript поддерживаются те же арифметические операторы, что
и в языке Java: «+», «-», «*», «/», «%», <<+=>>, << -=>>, ...
При этом оператор сложения "+" при работе со строками означает конкатенацию последних, например
s = "str1" + "str2"
Операция инкремента «++», служит для прибавления 1 к операнду, соответственно декремент «--» – используется для вычитания 1 от операнда.
Операторы сравнения
В языке 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 может отсутствовать.
Операторы организации циклов
Ниже приведен синтаксис для организации циклов:
while (условие)
выражение или блок выражений
Do
выражение или блок выражений
while (условие);
Цикл for имеет синтаксис:
for (начальные значения; условие; изменение начальных переменных)
выражение или блок выражений
Пример цикла for:
<script type="text/javascript">
for (var i = 0, j = 7; i < j; i++, j--) {
alert(i + ' ' + j);
}
//на экран последовательно будут выведены пары чисел: 0 и 7, 1 и 6, 2 и 5, 3 и 4
</script>
Оператор цикла for…in служит для перебора всех свойств в объекте:
for (имя_переменной in объект)
выражение или блок выражений
Примером может служить перебор всех стилей какого-либо элемента:
<p id="myP">test</p>
<script type="text/javascript">
var objProp;
for (objProp in document.getElementById("myP").style) {
alert(objProp + ' = ' + document.getElementById("myP").style[objProp]);
}
</script>
Цикл выведет все свойства объекта style элемента параграфа.
Во всех циклах могут применяться операторы continue и break, первый служит для перехода к следующей итерации в цикле, второй – для выхода из цикла.
Оператор with
С помощью оператора with можно обращаться к свойствам объекта в сокращенном виде:
with (object) {
выражения
}
Пример оператора with:
<p id="myP">test</p>
<script type="text/javascript">
with (document.getElementById("myP").style) {
color = "red";
fontSize = "20px";
fontFamily = "Arial";
letterSpacing = "5px";
}
</script>
Оператор switch
switch (переменная) {
case условие1: выражение
break;
case условие2: выражение
break;
...
case условиеN: выражение
break;
default: выражение
}
Ветка default выполняется, если ни одно из предыдущих условий не выполняется и может отсутствовать.
Метод eval()
Метод выполняет JavaScript код, переданный ему строкой в качестве параметра.
Пример реализации простейшего калькулятора приведен ниже:
<body>
<input type="text" id="calc" />
<input type="button" value="Calculate!"
onclick=
"alert(eval(document.getElementById('calc').value))" />
</body>
Функции
В языке JavaScript описание функций имеет следующий синтаксис:
functionимя_функции(список_параметров) {
список выражений;
return (значение)
}
Параметры в списке разделяются запятыми и могут отсутствовать. Например:
function hello() {
alert(“Hello, World!”)
}
hello();
//выведет на экран фразу «Hello, World!»
Если в описании функции определено несколько параметров, а при вызове эти параметры не передаются, то JavaScript автоматически присваивает неопределенным параметрам значение undefined.
Для выхода из функции и возврата значения в вызвавшее эту функцию выражение используется оператор return.
function sumIt(arg1, arg2, arg3) {
var res = arg1 + arg2;
if (arg3) res = res + arg3;
return res;
}
var x = 1; var y = 2; var z = 3;
alert(sumIt(x,y,z));
//выведет на экран 6
alert(sumIt(x,y));
//выведет на экран 3, прибавление третьего параметра к результату не производится, так как проверяется его наличие. Если такой проверки нет, то возникнет ошибка