Структура языка


Структура языка — набор элементарных правил, которые задают написание программы на JavaScript. Это самый нижний уровень языка, в нем определяются такие вещи как имена переменных, комментарии в тексте, отделение одной инструкции от другой и другие базовые принципы.


Чувствительность к регистру

JavaScript очень ревностно относится к тому, какими символами — заглавными или прописными написаны имена ключевых слов, переменных, функций и других идентификаторов. Обращайте внимание на то, чтобы все упомянутые в начале имена писались точно также на протяжении всего кода. К примеру, переменные online, online, OnLine и ONLINE являются разными.

Сам HTML к регистру не чувствителен, поэтому при описании события величина символов значения не имеет. Приведенный фрагмент будет работать корректно <body onload="foo()">, так же, как и <body onLoad="foo()">, поскольку является частью кода HTML, а не JavaScript. Однако при смене имени на Foo(), появится ошибка, JavaScript не сможет обнаружить такую функцию в наличии.

Пробелы и переносы

JavaScript игнорирует любые пробелы, символы табуляции и пустые строки, за исключением имен переменных. В названиях функций и идентификаторов пробелы ставить нельзя. В остальных случаях код программы можно форматировать как угодно для лучшего ее восприятия.

Отделение одной конструкции от другой

Каждая строка кода воспринимается как одна команда. Если в строке предусмотрено две и более конструкции языка, их следует разделять между собой точкой с запятой. В конце разделитель можно не указывать.

a = 1; b = 3 // правильно
a = 3 b = 4 // неправильно

a = 4 // тоже правильно
b = 6

Слишком длинные аргументы, такие как текст, переносить на другую строку нельзя, иначе это будет воспринято, как еще одна строка кода и проведен ее анализ.

text = "Во избежании медицинских осложнений стул рекомендуется выбирать с мягким сидением."

В этом коде содержится ошибка, поскольку в первой строке отсутствует завершающая кавычка, а вторая строка начинается не с ключевого слова или идентификатора, и тоже содержит кавычку. Чтобы подобных недоразумений не возникало, учитывайте правило: одна строка — один код.

Комментарии

Комментарии служат для добавления в скрипт поясняющего текста. Браузер их полностью игнорирует. Любой текст после двух косых черт (//) исключается из анализа кода и помечается как комментарий.

// Проверяем, указаны ли имя и текст

if(!text) alert("Не указан текст") // Надо же, пользователь забыл текст указать
else if(!name) alert("Не указано имя") // Еще свое имя позабыл
else alert("Текст добавлен") // А вот теперь все в порядке

Для создания комментария, состоящего из нескольких строк, используются символы /* и */. Все что находится между ними пропускается.

/*
Функция для создания ниспадающего меню
Для работы требует библиотеку menu.js
*/

function menu() {
...
}

Идентификаторы

Идентификатором называется имя для обращения к переменным или функциям. Правила их написания такие же, как и для других языков программирования. Идентификатор всегда должен начинаться с буквы (заглавной или строчной, не имеет значения) или с символа подчеркивания (_). Остальные символы в имени могут быть буквами, цифрами или подчеркиванием.

_pi // правильно
314pi // неправильно
_314 // правильно
nameOfIdFoo // правильно
#id // неправильно

Зарезервированные слова

Существует несколько слов, которые нельзя использовать как идентификаторы, поскольку они являются частью синтаксиса языка. Такие слова называются зарезервированными, использование их в качестве переменных может привести к ошибке. В таблице 1 приведен список таких слов.

Таблица 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  

Следует воздерживаться от использования этих идентификаторов, независимо от регистра их написания (заглавные или прописные символы).



Предыдущая статья     Список статей    

Следующий раздел