Структура программ на языке JavaScript
Как и во многих других языках программирования, программа (сценарий) на языке JavaScript - это текст, состоящий из операторов, блоков, т. е. взаимосвязанных наборов операторов, и комментариев. Операторы могут содержать переменные, константы и выражения. Следующий пример начинается с определения функции, которое состоит из блока, содержащего два оператора. За определением следуют два оператора, не образующих блока.
function convert(inches) { cm = inches * 2.54; // Эти два оператора заключены в блок. meters = inches / 39.37; } convert(inches); // Эти два оператора не образуют блока. km = meters / 1000;
Как мы видим из этого примера, каждый оператор JavaScript начинается с новой строки (что не обязательно, но рекомендуется) и заканчивается точкой с запятой (что также не обязательно, если оператор является последним в строке). Блок - это набор операторов, заключенный в фигурные скобки {}.
Строка сценария, содержащая только точку с запятой, считается пустым оператором, т. е. оператором, не выполняющим никакого действия. Тем не менее, в некоторых случаях использование пустого оператора удобно, например:
while (i--) // Цикл состоит в уменьшении i до нуля, ; // поэтому его телом является пустой оператор.
Для удобства чтения программы и форматирования ее текста могут использоваться символы пробела. Эти символы игнорируются всюду, кроме строковых констант и регулярных выражений, в которых они являются значимыми. Символами пробела в JavaScript считаются следующие символы Unicode:
пробел (\u0020);
табуляция (\u0009);
вертикальная табуляция (\u000B);
перевод формата (\u000C);
неразрывный пробел (\u00A0).
Символы разрыва строки также используются для форматирования текста, но они могут иметь значение и с точки зрения синтаксиса программы. Формальные правила использования разрывов строк в JavaScript довольно сложны, но на практике достаточно помнить только то, что обычно рекомендуется начинать новый оператор с новой строки. Символами разрыва строки в JavaScript считаются следующие символы Unicode:
перевод строки (\u000A);
возврат каретки (\u000D);
разделитель строк (\u2028);
разделитель абзацов (\u2029).
Комментарии
Комментарии в JavaScript могут быть однострочными и многострочными. Однострочные комментарии начинаются с символов // и продолжаются до конца текущей строки, как показано в приведенном выше примере. Многострочные комментарии заключаются в маркеры /* и */, например:
/* Это пример комментария, содержащего несколько строк. */
Многострочные комментарии не могут быть вложены друг в друга. Текст комментария полностью игнорируется при выполнении программы.
Зарезервированные слова
Следующие имена являются ключевыми словами языка JavaScript и не могут употребляться в качестве идентификаторов:
break | delete | function | return | typeof | case | do | if | switch | var | catch | else | in | this | void | continue | finally | instanceof | throw | while | default | for | new | try | with |
Следующие имена являются ключевыми словами в предлагаемых расширениях языка JavaScript и также не должны употребляться в качестве идентификаторов в целях совместимости с будущими версиями языка:
absract | double | implements | private | throws | boolean | enum | import | protected | transient | byte | export | int | public | volatile | char | extends | interface | short | class | final | long static | const | float | native | super | debugger | goto | package | synchronized |
Идентификаторы
Идентификаторы используются в JavaScript в качестве имен переменных. Они могут начинаться с латинской буквы, символа "$" (знак доллара) или символа "_" (подчеркивание) и должны состоять из латинских букв, цифр и символов "$" и "_". Знак доллара рекомендуется использовать только в идентификаторах программ, которые автоматически генерируются другими программами. Идентификаторы не могут совпадать с зарезервированными словами. Два идентификатора считаются равными, если они текстуально совпадают; это означает, что JavaScript проводит различие между строчными и прописными буквами. Примеры синтаксически правильных идентификаторов:
MyIdentfier another_identifier $id _function123
1 2
8 8 8
| |