Синтаксис JavaScript. Рекомендации.

  • JavaScript чувствителен к регистру символов. Это означает, что имена Name и name представляют собой совершенно разные имена переменных или функций. Чувствительность к регистру касается как стандартных, так и пользовательских элементов сценария.
  • Имена переменных чувствительны к регистру; имена переменных должны состоять из букв латинского алфавита, цифр и знаков "_"; имена переменных не могут начинаться с цифры; переменная должна быть объявлена до того, как вы начнете ее использовать;
  • Принято если переменная состоит из двух слов, то первое слово пишется с маленькой буквы, например: timerId.
  • Имена CSS в JavaScript. В именах многих атрибутов Основы работы с CSS стилей, таких как font-family, содержатся дефисы. В JavaScript дефис интерпретируется как знак минус, поэтому нельзя на писать, например, такое выражение: element.style.font-family = "sans serif"; Таким образом, если имя CSS атрибута содержит дефисы, имя свойства объекта JavaScript образуется путем удаления дефисов и перевода в верхний регистр буквы, непосредственно следующей за каждым из них. Другими словами, атрибут border-left-width доступен через свойство borderLeftWidth, а к атрибуту font-family можно обратиться следующим образом:
    element.style.fontFamily = "sans-serif";
  • Операторы должны разделяться между собой символом ";" хотя это и не является обязательным.
  • Операторы могут объединяться в блоки. Для этого их следует размещать в фигурных скобках: "{" и "}". В этом случае несколько операторов рассматриваются интерпретатором и выполняются как один составной оператор. При этом разделитель ";" после блока не ставится.
  • В текст скрипта можно включать однострочные и блочный комментарии, аналогично С++.
  • В JavaScript значению "ложь" соответствует не только логический литерал false, но и несколько эквивалентов других типов данных: 0, "", null, undefined. Все остальные значения считаются эквивалентом "истины" - true. Таким образом, в логических выражениях могут участвовать значения не булевого типа.
  • Если браузер не понимает JS и вы не хотите чтобы скрипт выводился как обычный текст, применяют такой приём с комментариями:
    <script>
    <!--
    alert ('Как тебя зовут?');
    //-->
    </script>
  • Пробелы и переводы строк в JavaScript не обязательны. Можно написать программу в одну строку. Роль пробелов в блоках – отделять их от остальной программы.

Переменные в JavaScript

  • Переменные в JavaScript объявляются при помощи ключевого слова var, которое располагается в начале объявления. При объявлении переменной можно присвоить значение (проинициализировать). Если переменная не была проинициализирована при объявлении, она будет содержать специальное значение - undefined (неопределено). В некоторых случаях переменную инициализировать все же необходимо, но ей не нужно присваивать конкретное значение. В такой ситуации можно воспользоваться еще одним специальным значением null (пусто). За один раз можно объявить более одной переменной, в таком случае они разделяются запятой ",". Объявление заканчивается символом ";".Шаблон объявления переменных имеет следующий вид (в квадратные скобки [] взяты необязательные части конструкции):
    var имя_переменной [= значение] [, имя_переменной [= значение] ... ];

    Ниже приводятся несколько примеров объявления переменных:

    var angle; //переменная объявлена но не проинициализирована
    var counter_1 = 0; //переменная объявлена и проинициализирована значением 0
    var FirstName, LastName = "Иванов", age=20; //объявление нескольких переменных одновременно

Операторы цикла for, while, do

  • Синтаксис цикла for:
    for (A; B; I){S} 
    
    где
    A - первоначальное выражение, 
    B - условие продолжения. Если это выражение ложно, то выполнение цикла завершается,
    I - выражение инкремента, 
    {} - тело цикла, 
    S - операторы.

    Пример. В цикле перебирается строка с 0 -ого элемента и до последнего символа.

    var str='Моя строка';
        for (i = 0; i < str.length; i++) {
        console.log(str[i]);
    }
  • Синтаксис цикл while:
    while (B){S} 
    где
    B - условие продолжения. Если это выражение ложно, то выполнение цикла завершается,
    {} - тело цикла, 
    S - операторы.

    Иными словами, операторы S, выполняются до тех пор, пока условие B не станет ложным. Например

    var number = 0;
    while (number <= 12) {
    	console.log(number);
    	number = number + 2;
    }
  • Синтаксис цикл do. Он похож на цикл while. Отличается только в одном: цикл do всегда выполняет тело хотя бы один раз, а проверяет условие после первого выполнения. Поэтому и тестируемое выражение записывают после тела цикла:
    do {
       var name = prompt("Who are you?");
    } while (!name);
    console.log(name);

    Эта программа заставляет ввести имя. Она спрашивает его снова и снова, пока не получит что-то кроме пустой строки. Добавление "!" превращает значение в булевское и затем применяет логическое отрицание, а все строки, кроме пустой, преобразуются в булевское true.

Тернарный оператор

Для избежания ошибок сравнение лучше заключать в скобки. Например, на странице есть элемент чекбокс <input type="checkbox" checked id="checknodns" /> и нужно проверить его состояние

var checknodns = document.getElementById('checknodns');
var test = (checknodns.checked) ? "true" : "false";

switch case

Когда выполняется инструкция switch, она вычисляет значение выражения, а затем ищет метку case, соответствующую этому значению. Если метка найдена, исполняется блок кода, начиная с первой инструкции, следующей за меткой case. Если метка case с соответствующим значением не найдена, исполнение начинается с первой инструкции, следующей за специальной меткой default:. Если метки default: нет, блок кода пропускается целиком.

Следующая инструкция switch эквивалентна повторяющимся инструкциям if/else:

switch(n) {
case 1:
// Выполняется, если n == 1
// Исполняем блок кода 1.
break; // Здесь останавливаемся
case 2:
// Выполняется, если n == 2
// Исполняем блок кода 2.
break; // Здесь останавливаемся
case 3:
// Выполняется, если n == 3
// Исполняем блок кода 3.
break; // Здесь останавливаемся
default: // Если все остальное не подходит...
// Исполняем блок кода 4.
break; // Здесь останавливаемся
}

Инструкция break приводит к передаче управления в конец инструкции switch или цикла. Конструкции case в инструкции switch задают только начальную точку исполняемого кода, но не задают никаких конечных точек. В случае отсутствия инструкций break инструкция switch начинает исполнение блока кода с метки case, соответствующей значению выражения, и продолжает исполнение до тех пор, пока не дойдет до конца блока. В редких случаях это полезно для написания кода, который переходит от одной метки case к следующей, но в 99 % случаев следует аккуратно завершать каждый блок case инструкцией break.

При использовании switch внутри функции можно помещать вместо break инструкцию return. Обе эти инструкции служат для завершения работы инструкции switch и предотвращения перехода к следующей метке case.

Ниже приводится более реальный пример использования инструкции switch; он преобразует значение в строку способом, зависящим от типа значения:

function convert(x) {
switch(typeof x) {
case 'number': // Преобразуем число в шестнадцатеричное целое
return x.toString(16);
case 'string': // Возвращаем строку, заключенную в кавычки
return '"' + x + '"';
case 'boolean': // Преобразуем в TRUE или FALSE, в верхнем регистре
return x.toString().toUpperCase();
default:
// Любой другой тип преобразуем обычным способом
return x.toString()
}
}
Стандарт ECMAScript v3 допускает указание после case произвольного выражения, например case a[0]:, case n+1:.
PQ VPS сервера в 28+ странах.