
Цикл for
Чаще всего применяется цикл for. Выглядит он так:
for (начало; условие; шаг) { |
// ... тело цикла ... |
} |
Например, цикл ниже выводит значения от 0 до 3 (не включая 3):
1 |
var i; |
2 |
|
3 |
for (i=0; i<3; i++) { |
4 |
alert(i); |
5 |
} |
Начало i=0 выполняется при заходе в цикл.
Условие i<3 проверяется перед каждой итерацией.
Шаг i++ выполняется после каждой итерации, но перед проверкой условия.
Массив Array Создание
01 |
/* обычный синтаксис */ |
|
02 |
var array = [ elem0, elem1, elem2, ... ] |
03 |
var empty = [] |
|
04 |
|
|
05 |
/* Синтаксис с new Array() */ |
|
06 |
var array = new Array( elem0, elem1, elem2, ...) |
07 |
var empty = new Array() |
|
08 |
|
|
09 |
/* Редкий синтаксис: аргумент new Array - одно число. |
|
10 |
При этом создается массив заданной длины, |
|
11 |
все значения в котором undefined */ |
|
12 |
var array = new Array(10) |
|
Аргументы
elem0, elem1, ...
Если ни один из параметров elem0, elem1, ... не указан, то инициализируется пустой массив.
Если указан лишь один числовой параметр elem0 и массив объявлен черезnew Array, то будет инициализирован пустой массив длины, равной данному числу. При этом все элементы являются undefined.
В ином случае создается массив из перечисленных элементов.
Функция Function
Создание
new Function ([arg1[, arg2[, ... argN]],] functionBody) |
Аргументы
arg1, arg2, ... argN
Имена параметров для создаваемой функции. Каждый аргумент должен быть строкой, которая является корректным идентификатором javascript или списком таких строк, разделенных запятой. Например: "x", "theValue" или "a,b".
functionBody
javascript-код тела функции
Объявленная функция доступна по имени, например:
1 |
function showMessage() { |
2 |
alert('Привет всем присутствующим!'); |
3 |
} |
4 |
|
5 |
showMessage(); |
6 |
showMessage(); |
Операторы в JavaScript делятся на:
Арифметические
Побитовые
Логические
Сравнение
Арифметические
+ - * / %
В отличие от некоторых других языков, оператор "+" делает конкатенацию, если хотя бы один операнд - строка, причем, не обязательно первый.
Унарный оператор "+" также используется для преобразования строки к числу:
alert(+"123"+1) // 124 |
Побитовые
& | ^ >> >>> <<
Все побитовые операции работают с 4-байтовым signed int.
Операция >>> сдвигает побитово вправо, а слева нулями дополняет. В результате эффект - тот же, что и при простом сдвиге >> для положительных чисел.
Для отрицательных - все по-другому. Например, -9 в битовом виде выглядит как: 11111111111111111111111111110111.
Операция >>> даст эффект: -9 >>> 2 будет в битовом виде 00111111111111111111111111111101, т.е 1073741821.
Логические
&&
Логическое И. Возвращает последний операнд, если все операнды верны. Если хоть один из операндов неверен, то возвратит первый неверный операнд.
Например, 1 && 2 = 2:
1 && 0 && false === 0:
Оператор И обычно используется, чтобы избежать ошибок при получении вложенных свойств объекта.
Например, нужно свойство petShop.animals.rabbit или ложное значение, если такого свойства нет.
Безопасный способ:
var rabbit = petShop && petShop.animals && petShop.animals.rabbit |
Этот код корректно выполнится, даже если petShop = false, в то время как
var rabbit = petShop.animals.rabbit |
выдаст ошибку(бросит исключение) об отсутствующем свойстве.
||
Оператор логического ИЛИ возвращает первое верное значение. А если верных значений вообще нет, то последнее неверное. Это удобно использовать так:
var e = event || window.event // если event не событие, то берем window.event |
!
Логическое НЕ, также удобно для преобразования в Boolean.
1 |
var str = "something" |
|
2 |
// эквивалентные записи |
3 |
var test = Boolean(str) |
|
4 |
var test = !!str |
|
Сравнение
== != < > <= >= === !==
Операторы больше-меньше также работают со строками, сравнивая их лексикографически, т.е посимвольно.
"B">"a" |
|
"bc" < "bd" |
Сравнение == делается с приведением типов, а === без приведения типов, например:
0 == false // верно |
|
// но |
|
0 !== false //типы разные |
?
Тернарный оператор. В старых парсерах javascript с ним были проблемы, надо было заключать сравнение в скобки, но в новых - вполне нормальный оператор
var test = (1==2) ? "one" : "two" |
|
// эквивалентно |
|
var test = 1==2 ? "one" : "two" |