Структура языка — набор элементарных правил, которые задают написание программы на JavaScript. Это самый нижний уровень языка, в нем определяются такие вещи как имена переменных, комментарии в тексте, отделение одной инструкции от другой и другие базовые принципы.
Сам HTML к регистру не чувствителен, поэтому при описании события величина символов значения не имеет. Приведенный фрагмент будет работать корректно <body onload="foo()">, так же, как и <body onLoad="foo()">, поскольку является частью кода HTML, а не JavaScript. Однако при смене имени на Foo(), появится ошибка, JavaScript не сможет обнаружить такую функцию в наличии.
a = 4 // тоже правильно
b = 6
Слишком длинные аргументы, такие как текст, переносить на другую строку нельзя, иначе это будет воспринято, как еще одна строка кода и проведен ее анализ.
text = "Во избежании медицинских осложнений стул рекомендуется выбирать с мягким сидением."
В этом коде содержится ошибка, поскольку в первой строке отсутствует завершающая кавычка, а вторая строка начинается не с ключевого слова или идентификатора, и тоже содержит кавычку. Чтобы подобных недоразумений не возникало, учитывайте правило: одна строка — один код.
if(!text) alert("Не указан текст") // Надо же, пользователь забыл
текст указать
else if(!name) alert("Не указано имя") // Еще свое имя позабыл
else alert("Текст добавлен") // А вот теперь все в порядке
Для создания комментария, состоящего из нескольких строк, используются символы /* и */. Все что находится между ними пропускается.
function menu() {
...
}
Таблица 1. Зарезервированные ключевые слова
break | false | in | this | void |
continue | for | new | true | while |
delete | function | null | typeof | with |
else | if | return | var |
В таблице 2 указаны слова, которые хотя и не являются зарезервированными, но использования их для задания идентификаторов следует избегать. Список представляет собой названия имен встроенных функций, переменных и типов данных, которые включены в JavaScript.
Таблица 2. Имена, которые не следует использовать для идентификаторов
alert | escape | JavaPackage | onunload | setTimeout |
Anchor | eval | length | open | status |
Area | FileUpload | Link | opener | String |
Array | focus | Location | Option | Submit |
assign | Form | location | Packages | sun |
blur | Frame | Math | parent | taint |
Boolean | frames | MimeType | parseFloat | Text |
Button | Function | name | parseInt | Textarea |
Checkbox | getClass | navigate | Password | top |
clearTimeout | Hidden | Navigator | Plugin | toString |
close | History | navigator | prompt | unescape |
closed | history | netscape | prototype | untaint |
confirm | Image | Number | Radio | valueOf |
Date | isNaN | Object | ref | Window |
defaultStatus | java | onblur | Reset | window |
Document | JavaArray | onerror | scroll | |
document | JavaClass | onfocus | Select | |
Element | JavaObject | onload | self |
Следует воздерживаться от использования этих идентификаторов, независимо от регистра их написания (заглавные или прописные символы).