Такой взгляд на цепочку областей видимости будет полезен для понимания инструкции with (раздел 5.7.1) и чрезвычайно важен для понимания замыканий (раздел 8.6).
4
Выражения и операторы
Выражение - это фраза языка JavaScript, которая может быть вычислена интерпретатором для получения значения. Константа, встроенная в программу, является простейшей разновидностью выражений. Имя переменной также является простейшим выражением, в результате вычисления которого получается значение, присвоенное переменной. Более сложные выражения состоят из простых выражений. Выражение обращения к элементу массива, например, состоит из выражения, которое возвращает массив, за которым следуют открывающая квадратная скобка, выражение, возвращающее целое число, и закрывающая квадратная скобка. В результате вычисления этого более сложного выражения получается значение, хранящееся в элементе указанного массива с указанным индексом. Аналогично выражение вызова функции состоит из выражения, возвращающего объект функции и ноль или более дополнительных выражений, используемых в качестве аргументов функции.
Наиболее типичный способ конструирования сложных выражений из более простых выражений заключается в использовании операторов. Операторы объединяют значения своих операндов (обычно двух) некоторым способом и вычисляют новое значение. Простейшим примером может служить оператор умножения *. Выражение х * у вычисляется как произведение значений выражений х и у. Иногда для простоты мы говорим, что оператор возвращает значение вместо «вычисляет» значение.
Эта глава описывает все операторы JavaScript, а также выражения (такие как индексирование массивов и вызов функций), в которых не используются операторы. Те, кто знаком с другими языками программирования, использующими С-подобный синтаксис, заметят, что в JavaScript выражения и операторы имеют похожий синтаксис.
4.1. Первичные выражения
Простейшие выражения, известные как первичные выражения, являются самостоятельными выражениями - они не включают более простых выражений.
Первичными выражениями в языке JavaScript являются константы, или литералы, некоторые ключевые слова и ссылки на переменные.
Литералы и константы встраиваются непосредственно в программный код. Они выглядят, как показано ниже:
1.23 // Числовой литерал
"hello" // Строковый литерал
/pattern/ // Литерал регулярного выражения
Синтаксис числовых литералов в JavaScript был описан в разделе 3.1.0 строковых литералах рассказывалось в разделе 3.2. Синтаксис литералов регулярных выражений был представлен в разделе 3.2.4 и подробно будет описываться в главе 10.
Ниже приводятся некоторые из зарезервированных слов JavaScript, являющихся первичными выражениями:
true // Возвращает логическое значение true
false // Возвращает логическое значение false
null // Возвращает значение null
this // Возвращает "текущий" объект
Мы познакомились со значениями true, false и null в разделах 3.3 и 3.4. В отличие от других ключевых слов, this не является константой - в разных местах программы оно может возвращать разные значения. Ключевое слово this используется в объектно-ориентированном программировании. Внутри метода this возвращает объект, относительно которого был вызван метод. Дополнительные сведения о ключевом слове this можно найти в разделе 4.5, в главе 8 (особенно в разделе 8.2.2) и в главе 9.