Содержание

JavaScript | Синтаксис

84

Веб-программирование — JavaScript — Синтаксис JavaScript

С 1995 года JavaScript прошел длинный путь от скромного компонента браузера Netscape до современных высокопроизводительных JIT-интерпретаторов. Казалось бы, всего лет пять назад разработчики были ошеломлены появлением Ajax, а уже сейчас сложные JavaScript-приложения достигли объемов в сотни и тысячи строк кода.

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

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

Свой синтаксис JavaScript унаследовал из языка Java, свои первоклассные функции – из языка Scheme, а механизм наследования на основе прототипов – из языка Self. Но вам не требуется знать все эти языки или быть знакомыми с их терминологией для изучения JavaScript.

В этой статье мы рассмотрим базовые лексические структуры языка.

Символы

При написании программ на JavaScript используется набор символов Юникода. Юникод является надмножеством кодировок ASCII и Latin-1 и поддерживает практически все письменные языки, имеющиеся на планете. Стандарт ECMAScript 3 требует, чтобы реализации JavaScript обеспечивали поддержку стандарта Юникода версии 2.1 или выше, а стандарт ECMAScript 5 требует, чтобы реализации обеспечивали поддержку стандарта Юникода версии 3 или выше.

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

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

Например, ключевое слово while должно набираться как «while», а не «While » или «WHILE». Аналогично myvar, Myvar, MyVar и MYVAR – это имена четырех разных переменных. Заметим, однако, что язык разметки HTML (в отличие от XHTML) не чувствителен к регистру. Так как HTML и клиентский JavaScript тесно связаны, это различие может привести к путанице. Многие JavaScript-объекты и их свойства имеют те же имена, что и теги и атрибуты языка HTML, которые они обозначают. Однако если в HTML эти теги и атрибуты могут набираться в любом регистре, то в JavaScript они обычно должны набираться строчными буквами.

Например, атрибут onclick обработчика события чаще всего задается в HTML как onClick, однако в JavaScript-коде (или в XHTML-документе) он должен быть обозначен как onclick.

Пробелы, переводы строк и символы управления форматом

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

Помимо обычного символа пробела (\u0020) JavaScript дополнительно распознает как пробельные следующие символы: табуляция (\u0009), вертикальная табуляция (\u000B), перевод формата (\u000C), неразрывный пробел (\u00A0), маркер порядка следования байтов (\uFEFF), а также все символы Юникода, относящиеся к категории Zs.

Следующие символы распознаются интерпретаторами JavaScript как символы конца строки: перевод строки (\u000A), возврат каретки (\u000D), разделитель строк (\u2028) и разделитель абзацев (\u2029). Последовательность из символов возврата каретки и перевода строки интерпретируется как единственный символ завершения строки.

Символы Юникода, управляющие форматом (категория Cf), такие как RIGHT-TO-LEFT MARK (\u200F) и LEFT-TO-RIGHT MARK (\u200E), управляют визуальным представлением текста, в котором они присутствуют. Они имеют большое значение для корректного отображения текста на некоторых языках и являются допустимыми в комментариях JavaScript, строковых литералах и в литералах регулярных выражений, но не в идентификаторах (таких как имена переменных), определяемых в программах JavaScript. Исключение составляют ZERO WIDTH JOINER (\u200D) и ZERO WIDTH NON-JOINER (\u200C), которые можно использовать в идентификаторах при условии, что они не являются первыми символами идентификаторов.

Полную таблицу символов Unicode вы можете посмотреть на сайте Unicode Table.

Необязательные точки с запятой

Как и в других языках программирования, для отделения инструкций друг от друга в языке JavaScript используется точка с запятой (;). Использование точек с запятой имеет важное значение для ясного выражения намерений программиста: без этого разделителя по ошибке можно принять конец одной инструкции за начало следующей и наоборот.

Обычно в JavaScript точку с запятой между инструкциями можно не ставить, если они находятся в разных строках. (Точку с запятой можно также опустить в конце программы или если следующей лексемой в программе является закрывающая фигурная скобка }.) Многие программисты на JavaScript используют точки с запятой для явного обозначения концов инструкций, даже если в этом нет необходимости.

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

a = 3
b = 5;

Однако если эти инструкции записать, как показано ниже, первая точка с запятой становится обязательной:

a = 3; b = 5;

Комментарии

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

   // Это однострочный комментарий.
/* Это тоже комментарий */ // а это другой комментарий. /* Это еще один комментарий. Он располагается в нескольких строках. */

Идентификаторы и зарезервированные слова

Идентификатор — это просто имя. В JavaScript идентификаторы выступают в качестве имен переменных и функций, а также меток некоторых циклов. Идентификаторы в JavaScript должны начинаться с буквы, с символа подчеркивания (_) или знака доллара ($). Далее могут следовать любые буквы, цифры, символы подчеркивания или знаки доллара. (Цифра не может быть первым символом, так как тогда интерпретатору трудно будет отличать идентификаторы от чисел.) Примеры допустимых идентификаторов:

i
my_variable_name
v13
_myvar
$str

Для совместимости и простоты редактирования для составления идентификаторов обычно используются только символы ASCII и цифры. Однако JavaScript допускает возможность использования в идентификаторах букв и цифр из полного набора символов Юникода. Это позволяет программистам давать переменным имена на своих родных языках и использовать в них математические символы:

var имя = 'Александр';
var Π = 3.14;

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

Зарезервированные ключевые слова JavaScript
Категория Ключевые слова
Базовые идентификаторы break delete function return typeof
case do if switch var
catch else in this void
continue false instanceof throw while
debugger finally new true with
default for null try
Новые ключевые слова в стандарте EcmaScript 5 class const enum export
extends import super
Зарезервированные слова в строгом режиме (в обычном они доступны) implements let private public yield
interface package protected static
arguments eval
Ключевые слова языка Java (зарезервированы в EcmaScript 3) abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile
Предопределенные глобальные переменные и функции arguments encodeURI Infinity Number RegExp
Array encodeURIComponent isFinite Object String
Boolean Error isNaN parseFloat SyntaxError
Date eval JSON parseInt TypeError
decodeURI EvalError Math RangeError undefined
decodeURIComponent Function NaN ReferenceError URIError

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

Кроме того, каждая конкретная платформа JavaScript (клиентская, серверная и прочие) может иметь свой собственный список глобальных свойств.

Синтаксис Javascript

Синтаксис JavaScript это набор правил, по которым строится программа на JavaScript:

 var x, y;          // Так декларируются переменные
 x = 5; y = 6;      // Так присваиваются значения
 z = x + y;         // Так вычисляются значения

Значения JavaScript

В JavaScript существует два вида значений: фиксированные значения и переменные значения.

Фиксированные значения называются константы. Переменные значения называются переменными.

Константы JavaScript

Главное, что нужно знать при написании фиксированных значения это то, что

Числа могут записываются как с десятичной точкой, так и без нее:

 10.50
 1001 

Строки это текст, заключенный в двойные или одинарные кавычки:

 "John Doe"
 'John Doe' 

Переменные JavaScript

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

В JavaScript, чтобы объявить или декларировать переменную используется ключевое слово var.

Чтобы присвоить переменной значение используется знак равно (=).

В следующем примере декларируется переменная x. Затем переменной x присваивается значение 6:

 var x;
 x = 6; 

Операторы JavaScript

Для вычисления значений в JavaScript используются арифметические операторы

( + — * / ):

 (5 + 6) * 10

Для присваивания значений переменным в JavaScript используется оператор присваивания ( = ):

 var x, y;
 x = 5;
 y = 6;

Операнды JavaScript

Операнд это комбинация из значений, переменных и операторов, вычисляющая новое значение.

 5 * 10
 x * 10 

Значения могут быть различных типов, таких как числа и строки.

Например, операнд «John» + » » + «Doe» вычислит строку «John Doe»:

 "John" + " " + "Doe" 

Ключевые слова JavaScript

Ключевые слова JavaScript используются, чтобы задать необходимые для выполнения действия.

Например, ключевое слово var говорит браузеру, что нужно создать переменные:

 var x, y;
 x = 5 + 6;
 y = x * 10; 

Комментарии JavaScript

Не все выражения JavaScript «выполняются».

Код после двойного слэша // или между /* и */ воспринимается браузером как комментарий.

Комментарии игнорируются и не выполняются:

 var x = 5;   // Меня выполнят
 // var x = 6;   Меня НЕ выполнят

Подробнее о комментариях вы узнаете в следующей главе.

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

Идентификаторы — это имена.

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

В большинстве языках программирования правила составления корректных имен одни и те же.

В JavaScript первым символом идентификатора должна быть буква, символ подчеркивания (_) или символ доллара ($). Последующими же символами могут быть буквы, цифры, символы подчеркивания или символы доллара.

В качестве первого символа идентификатора нельзя использовать цифры. Так JavaScript отличает идентификаторы от числовых значений.

Все идентификаторы в JavaScript регистрозависимы.

Переменные lastName и lastname это разные переменные.

 var lastname, lastName;
 lastName = "Doe";
 lastname = "Peterson"; 

Таким образом, идентификаторы VAR или Var не будут интерпретироваться JavaScript как ключевое слово var.

JavaScript и «Горбатый Регистр»

Так сложилось исторически, что программисты для имени одной переменной использовали соединение нескольких слов. Это позволяет сразу же сделать понятным для чего предназначена эта переменная. Чтобы визуально разделить эти слова, используются различные способы.

Тире:

first-name, last-name, master-card, inter-city.

Внимание! Использование символа тире в идентификаторах в JavaScript запрещено. Тире зарезервирован для операции вычитания.

Символ подчеркивания:

first_name, last_name, master_card, inter_city.

Верхний «горбатый регистр» (стиль языка Pascal). «Горбатый регистр» называется так за сходство написания идентификаторов с горбами двугорбого верблюда — отдельные слова, составляющие идентификатор, начинаются с большой буквы, напоминая горб верблюда:

FirstName, LastName, MasterCard, InterCity.

Нижний «горбатый регистр». Как правило, программисты на JavaScript предпочитают использовать «горбатый регистр», начинающийся с маленькой буквы:

firstName, lastName, masterCard, interCity.

Набор символов в JavaScript

В JavaScript используется набор символов Юникод.

Юникод позволяет корректно отобразить (почти) все буквы, знаки пунктуации и другие символы, существующие в мире.

Синтаксис JavaScript

❮ Предыдущий Далее ❯

Значения JavaScript

Синтаксис JavaScript определяет два типа значений:

  • Фиксированные значения
  • Переменные значения

Фиксированные значения называются литералами .

Значения переменных называются Переменными .


Литералы JavaScript

Два наиболее важных правила синтаксиса для фиксированных значений:

1. Числа записываются с помощью или без десятичных знаков:

10.50

1001

Попробуйте сами »

2. Строки — это текст, заключенный в двойные или одинарные кавычки:

«Джон Доу»

«Джон Доу»

Попробуйте сами »



Переменные JavaScript

В языке программирования переменных используются для хранения значений данных.

JavaScript использует ключевые слова var , пусть и константа до объявить переменных.

Знак равенства используется для присвоения значений переменным.

В этом примере x определяется как переменная. Тогда х есть присвоенное (данное) значение 6:

пусть х;
х = 6;

Попробуйте сами. 59 ) к вычислить значений:

(5 + 6) * 10

Попробуйте сами »

JavaScript использует оператор присваивания ( = ) для присвоить значения переменных:

пусть x, y;
х = 5;
у = 6;

Попробуйте сами »


Выражения JavaScript

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

Вычисление называется оценкой.

Например, 5 * 10 соответствует 50:

5 * 10

Попробуйте сами »

Выражения также могут содержать значения переменных:

x * 10

Попробуйте сами »

Значения могут быть разных типов, например числа и строки.

Например, «Джон» + » » + «Доу», оценивается как «Джон Доу»:

«Джон» + » » + «Доу»

Попробуйте сами »


Ключевые слова JavaScript

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

ключевое слово let указывает браузеру создать переменные:

let x, y;
х = 5 + 6;
у = х * 10;

Попробуйте сами »

Ключевое слово var также указывает браузеру создавать переменные:

var x, y;
х = 5 + 6;
у = х * 10;

Попробуйте сами »

В этих примерах используется var или пусть даст тот же результат.

Подробнее о var и пусть позже в этом уроке.


Комментарии JavaScript

Не все операторы JavaScript «выполняются».

Код после двойной косой черты // или между /* и */ рассматривается как комментарий .

Комментарии игнорируются и не будут выполнено:

пусть х = 5; // буду выполнен

// x = 6; Я буду НЕ выполняться

Попробуйте сами »

Вы узнаете больше о комментариях в следующей главе.


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

Идентификаторы — это имена JavaScript.

Идентификаторы используются для именования переменных, ключевых слов и функций.

Правила для юридических имен одинаковы для большинства языков программирования.

Имя JavaScript должно начинаться с:

  • Буква (A-Z или az)
  • Знак доллара ($)
  • Или знак подчеркивания (_)

Последующие символы могут быть буквами, цифрами, подчеркиванием или знаком доллара.

Примечание

Цифры не допускаются в качестве первого символа в именах.

Таким образом, JavaScript может легко отличать идентификаторы от чисел.


JavaScript чувствителен к регистру

Все идентификаторы JavaScript с учетом регистра .

Переменные фамилия и фамилия , две разные переменные:

let lastname, lastName;
lastName = «Доу»;
фамилия = «Петерсон»;

Попробуйте сами »

JavaScript не интерпретирует LET или Let как ключевое слово let .


JavaScript и Camel Case

Исторически программисты использовали разные способы объединения нескольких слов в одно имя переменной:

Дефисы:

имя, фамилия, мастер-карта, междугородний.

Использование дефисов в JavaScript запрещено. Они зарезервированы для вычитаний.

Подчеркивание:

имя_имя, фамилия_имя, мастер_карта, межгород.

Верхний регистр Camel (Pascal Case):

Имя, Фамилия, MasterCard, InterCity.

Верблюжий регистр в нижнем регистре:

Программисты JavaScript склонны использовать верблюжий регистр, начинающийся со строчной буквы:

имя, фамилия, masterCard, interCity.


Набор символов JavaScript

JavaScript использует набор символов Unicode .

Unicode охватывает (почти) все символы, знаки препинания и символы в мире.

Для более подробного ознакомления изучите наш Полный справочник по Unicode.

❮ Предыдущий Следующая ❯

Комментарии JavaScript

❮ Предыдущая Далее ❯


Комментарии JavaScript можно использовать для объяснения кода JavaScript и чтобы сделать его более читабельным.

Комментарии JavaScript также можно использовать для предотвращения выполнения, когда тестирование альтернативного кода.


Однострочные комментарии

Однострочные комментарии начинаются с // .

Любой текст между // и концом строки будет игнорироваться JavaScript (не будет выполняться).

В этом примере перед каждой строкой кода используется однострочный комментарий:

Пример

// Изменить заголовок:
document.getElementById(«myH»).innerHTML = «Моя первая страница»;

// Изменить абзац:
document.getElementById(«myP»).innerHTML = «Мой первый абзац.»;

Попробуйте сами »

В этом примере используется однострочный комментарий в конце каждой строки. объяснить код:

Пример

пусть x = 5; // Объявляем x, присваиваем ему значение 5
let y = x + 2; // Объявите y, присвойте ему значение x + 2

Попробуйте сами »


Многострочные комментарии

Многострочные комментарии начинаются с /* и заканчиваются */ .

Любой текст между /* и */ будет игнорироваться JavaScript.

В этом примере для пояснения кода используется многострочный комментарий (блок комментариев):

Пример

/*
Код ниже
изменит заголовок с id = «myH» на
и абзац с id = » myP»
на моей веб-странице:
*/
document.getElementById(«myH»).innerHTML = «Моя первая страница»;
document.getElementById(«myP»).innerHTML = «Мой первый абзац.»;

Попробуйте сами »

Чаще всего используются однострочные комментарии.
Блочные комментарии часто используется для официальной документации.



Использование комментариев для предотвращения выполнения

Использование комментариев для предотвращения выполнения кода подходит для тестирование кода.

Добавление // перед строкой кода изменяет строки кода с исполняемой строки на комментарий.

В этом примере // используется для предотвращения выполнения одной из строк кода:

Пример

//document. getElementById(«myH»).innerHTML = «My First Page»;
document.getElementById(«myP»).innerHTML = «Мой первый абзац.»;

Попробуйте сами »

В этом примере блок комментариев используется для предотвращения выполнения несколько строк:

Пример

/*
document.getElementById(«myH»).innerHTML = «Моя первая страница»;
document.getElementById(«myP»).innerHTML = «Мой первый абзац.»;
*/

Попробуйте сами »

❮ Предыдущая Далее ❯

НАБОР ЦВЕТА



Лучшие учебники
Учебное пособие по HTML
Учебное пособие по CSS
Учебное пособие по JavaScript
Как учебное пособие
SQL Tuperial
Учебник по Python
W3.CSS TURIND
Учебник по начальной школе
Учебник PHP
Java Tutorial
C ++ Учебник
JQUERY Учебник

Top Spetrience
HTML Reference
CSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.