Переменные типа 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, прибавление третьего параметра к результату не производится, так как проверяется его наличие. Если такой проверки нет, то возникнет ошибка

Наши рекомендации