Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание
- Название:JavaScript. Подробное руководство, 6-е издание
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2012
- Город:СПб
- ISBN:978-5-93286-215-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание краткое содержание
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
JavaScript. Подробное руководство, 6-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Из двух способов обращения к свойству синтаксис .идентификатор
выглядит проще, но обратите внимание, что этот способ может использоваться, только если именем свойства, к которому выполняется обращение, является допустимый идентификатор, и это имя известно на этапе создания программы. Если имя свойства совпадает с зарезервированным словом, включает пробелы или знаки пунктуации, или когда оно является числом (в случае массивов), необходимо использовать синтаксис с квадратными скобками. Кроме того, квадратные скобки можно использовать, когда имя свойства является не статическим, а результатом некоторых вычислений (пример можно найти в разделе 6.2.1).
Подробнее об объектах и их свойствах рассказывается в главе 6, а массивы и их элементы обсуждаются в главе 7.
4.5. Выражения вызова
Выражение вызова в языке JavaScript служит для вызова (или выполнения) функции или метода. Оно начинается с выражения, возвращающего функцию, идентифицирующего вызываемую функцию. Вслед за выражением получения функции следуют открывающая круглая скобка, список из нуля или более выражений аргументов, разделенных запятыми, и закрывающая круглая скобка. Например:
f(0) // f - выражение функции; 0 - выражение аргумента.
Math.max(x,у,z) // Math.max - функция; x, у и z - аргументы.
a.sort() // a.sort - функция; здесь нет аргументов.
При вычислении выражения вызова первым вычисляется выражение, возвращающее функцию, а затем вычисляются выражения аргументов и создается список значений аргументов. Если значением выражения, возвращающего функцию, не является вызываемый объект, возбуждается исключение ТуреЕггог
. (Все функции являются вызываемыми объектами. Объекты среды выполнения также могут быть вызываемыми, даже если они не являются функциями. Это отличие рассматривается в разделе 8.7.7.) Далее значения аргументов присваиваются в порядке их следования именам параметров, которые указаны в определении функции, после чего выполняется тело функции. Если внутри функции используется инструкция return
, возвращающая некоторое значение, это значение становится значением выражения вызова. В противном случае выражение вызова возвращает значение undefined
. Полное описание механизма вызова функций, включая описание того, что происходит, когда количество выражений аргументов не совпадает с количеством параметров в определении функции, вы найдете в главе 8.
Все выражения вызова включают пару круглых скобок и выражение перед открывающей круглой скобкой. Если это выражение является выражением обращения к свойству, такой вызов называется вызовом метода. При вызове метода объект или массив, к свойству которого производится обращение, становится значением параметра this, доступного в теле функции во время его выполнения. Это обеспечивает поддержку парадигмы объектно-ориентированного программирования, согласно которой функции (в ООП обычно называются «методами») получают возможность манипулировать объектом, частью которого они являются. Подробности приводятся в главе 9.
ECMAScript 5, если функция определяется в строгом режиме, при вызове она получает в ключевом слове this
не глобальный объект, а значение undefined
. Подробнее о строгом режиме рассказывается в разделе 5.7.3.
4.6. Выражения создания объектов
Выражение создания объекта создает новый объект и вызывает функцию (называемую конструктором) для инициализации свойств этого объекта. Выражения создания объектов похожи на выражения вызова, за исключением того, что им предшествует ключевое слово new:
new Object()
new Point(2,3)
Если в выражении создания объекта функции-конструктору не передается ни одного аргумента, пустую пару круглых скобок можно опустить:
new Object
new Date
При вычислении выражения создания объекта интерпретатор JavaScript сначала создает новый пустой объект, как если бы для создания использовался пустой инициализатор объекта {}
, а затем вызывает указанную функцию с указанными аргументами, передавая ей новый объект в качестве значения ключевого слова this
. Функция может использовать его для инициализации свойств только что созданного объекта. Функции, которые создаются специально, чтобы играть роль конструктора, не должны возвращать значение, а значением выражения создания объекта становится созданный и инициализированный объект. Если конструктор возвращает какой-либо объект, этот объект становится значением всего выражения создания объекта, а вновь созданный объект уничтожается.
Более подробно конструкторы описываются в главе 9.
4.7. Обзор операторов
В языке JavaScript операторы используются в арифметических выражениях, выражениях сравнения, логических выражениях, выражениях присваивания и т. д. Перечень операторов приводится в табл. 4.1, которую можно использовать как справочник.
Таблица 4.1. Операторы JavaScript | ||||
---|---|---|---|---|
Оператор | Операция | А | N | Типы значений |
++ | Префиксный и постфиксный инкремент | R | 1 | левостороннее выражение —> число |
-- | Префиксный и постфиксный декремент | R | 1 | левостороннее выражение —> число |
- | Унарный минус | R | 1 | число —> число |
+ | Преобразование в число | R | 1 | число —> число |
~ | Поразрядная инверсия | R | 1 | целое —> целое |
Оператор | Операция | А | N | Типы значений |
! | Логическая инверсия | R | 1 | логическое —> логическое |
delete | Удаление свойства | R | 1 | левостороннее выражение —> логическое |
typeof | Определение типа операнда | R | 1 | любое —> строка |
void | Возврат неопределенного значения | R | 1 | любое —> undefined |
*, /, % | Умножение, деление, деление по модулю | L | 2 | число, число —> число |
+, - | Сложение, вычитание | L | 2 | число, число —> число |
+ | Конкатенация строк | L | 2 | строка, строка —> строка |
<< | Сдвиг влево | L | 2 | целое, целое —> целое |
>> | Сдвиг вправо с сохранением знака | L | 2 | целое, целое —> целое |
>>> | Сдвиг вправо с заполнением нулями | L | 2 | целое, целое -> целое |
<, <=, >, >= | Сравнение числовых значений | L | 2 | число, число —> логическое |
<, <=, >, >= | Сравнение строк | L | 2 | строка, строка —> логическое |
instanceof | Проверка на принадлежность классу | L | 2 | объект, функция —> логическое |
in | Проверка наличия свойства | L | 2 | строка, объект —> логическое |
== | Проверка равенства | L | 2 | любое, любое —»логическое |
!= | Проверка неравенства | L | 2 | любое, любое —> логическое |
=== | Проверка идентичности | L | 2 | любое, любое —> логическое |
!== | Проверка неидентичности | L | 2 | любое, любое —»логическое |
& | Поразрядное И | L | 2 | целое, целое —»целое |
^ | Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ | L | 2 | целое, целое —»целое |
| | Поразрядное ИЛИ | L | 2 | целое, целое —»целое |
&& | Логическое И | L | 2 | любое, любое —> любое |
|| | Логическое ИЛИ | L | 2 | любое, любое —> любое |
?: | Выбор второго или третьего операнда | R | 3 | логическое, любое, любое —> любое |
= | Присваивание переменной или свойству | R | 2 | левостороннее выражение, любое —> любое |
*=. /=. %=. +=. -=, &=, "=, |=, <<=, >>=, >>>= | Операция с присваиванием | R | 2 | левостороннее выражение, любое —> любое |
, | Отбросить первый операнд, вернуть второй | L | 2 | любое, любое —> любое |
Обратите внимание, что большинство операторов обозначаются символами пунктуации, такими как +
и =
, а некоторые - ключевыми словами, например delete
и instanceof
. И ключевые слова, и знаки пунктуации обозначают обычные операторы, просто первые имеют менее лаконичный синтаксис.
Интервал:
Закладка: