Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание
- Название:JavaScript. Подробное руководство, 6-е издание
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2012
- Город:СПб
- ISBN:978-5-93286-215-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание краткое содержание
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
JavaScript. Подробное руководство, 6-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
var о = {х: 1, у: 2}; // Определить объект
delete о.х; // Удалить одно из его свойств
"х" in о // => false: свойство больше не существует
var а = [1,2,3]: // Создать массив
delete а[2]; // Удалить последний элемент массива
2 in а // => false: второй элемент больше не существует
a.length // => 3: обратите внимание, что длина массива при этом не изменилась
Внимание: удаленное свойство или элемент массива не просто получает значение undefined
. После удаления свойства оно прекращает свое существование. Попытка прочитать значение несуществующего свойства возвратит значение undefined
, но вы можете проверить фактическое наличие свойства с помощью оператора in
(раздел 4.9.3). Операция удаления элемента массива оставляет в массиве «дырку» и не изменяет длину массива. В результате получается разреженный массив.
Оператор delete
требует, чтобы его операнд был левосторонним выражением. Если операнд не является левосторонним выражением, оператор не будет выполнять никаких действий и вернет значение true
. В противном случае delete
попытается удалить указанное левостороннее выражение. В случае успешного удаления значения левостороннего выражения оператор delete
вернет значение true
. Не все свойства могут быть удалены: некоторые встроенные свойства из базового и клиентского языков JavaScript устойчивы к операции удаления. Точно так же не могут быть удалены пользовательские переменные, объявленные с помощью инструкции var. Кроме того, невозможно удалить функции, объявленные с помощью инструкции function
, а также объявленные параметры функций.
В строгом режиме, определяемом стандартом ECMAScript 5, оператор delete
возбуждает исключение SyntaxError
, если его операндом является неквалифицированный идентификатор, такой как имя переменной, функции или параметра функции: он может оперировать только операндами, которые являются выражениями обращения к свойству (раздел 4.4). Кроме того, строгий режим определяет, что оператор delete
должен возбуждать исключение ТуреЕггог
, если запрошено удаление ненастраиваемого свойства (раздел 6.7). В обычном режиме в таких случаях исключение не возбуждается, и оператор delete
просто возвращает false
, чтобы показать, что операнд не был удален.
Ниже приводится несколько примеров использования оператора delete
:
var о = {х:1, у:2}; // Определить переменную; инициализировать ее объектом
delete о.х; // Удалить одно из свойств объекта; вернет true
typeof о.х; // Свойство не существует; вернет "undefined"
delete о.х; // Удалить несуществующее свойство; вернет true
delete о; // Объявленную переменную удалить нельзя; вернет false
// В строгом режиме возбудит исключение.
delete 1; // Аргумент не является левосторонним выражением; вернет true
this.x =1; // Определить свойство глобального объекта без var
delete х; // Удалить: вернет true при выполнении в нестрогом режиме; в строгом
// режиме возбудит исключение. Используйте 'delete this.x' взамен,
х; // Ошибка времени выполнения: переменная х не определена
С оператором delete мы снова встретимся в разделе 6.3.
4.13.4. Оператор void
Унарный оператор void
указывается перед своим единственным операндом любого типа. Этот оператор редко используется и имеет необычное действие: он вычисляет значение операнда, затем отбрасывает его и возвращает undefined
. Поскольку значение операнда отбрасывается, использовать оператор void
имеет смысл только ради побочных эффектов, которые дает вычисление операнда.
Чаще всего этот оператор применяется в клиентском JavaScript, в адресах URL вида JavaScript:, где он позволяет вычислить выражение ради его побочных действий, не отображая в броузере вычисленное значение. Например, оператор void
можно использовать в HTML-теге <���а>:
<���а href="javascript:void window.open();">0ткрыть новое окно</а>
Эта разметка HTML была бы более очевидна, если бы вместо URL javascript:
применялся обработчик события onclick
, где в использовании оператора void нет никакой необходимости.
4.13.5. Оператор «запятая» (,)
Оператор «запятая» ( ,
) является двухместным оператором и может принимать операнды любого типа. Он вычисляет свой левый операнд, вычисляет свой правый операнд и возвращает значение правого операнда. То есть следующая строка:
i=0, j=1, k=2;
вернет значение 2 и практически эквивалентна строке:
і = 0; j=1; k = 2;
Выражение слева вычисляется всегда, но его значение отбрасывается, поэтому применять оператор запятая имеет смысл только ради побочного эффекта левого операнда. Единственным типичным применением оператора запятая является его использование в циклах for (раздел 5.5.3) с несколькими переменными цикла:
// Первая запятая ниже является частью синтаксиса инструкции var
// Вторая запятая является оператором: она позволяет внедрить 2 выражения (i++ и j--)
// в инструкцию (цикл for), которая ожидает 1 выражение.
for(var i=0,j=10; і < j; i++,j --)
console.log(i+j);
5
Инструкции
В главе 4 выражения были названы фразами языка JavaScript. По аналогии инструкции можно считать предложениями на языке JavaScript, или командами. Как в обычном языке предложения завершаются и отделяются друг от друга точками, так же и инструкции JavaScript завершаются точками с запятой (раздел 2.5). Выражения вычисляются и возвращают значение, а инструкции выполняются, чтобы что-то происходило.
Чтобы «что-то происходило», можно вычислить выражение, имеющее побочные эффекты. Выражения с побочными эффектами, такие как присваивание и вызовы функций, могут играть роль самостоятельных инструкций - при таком использовании их обычно называют инструкциями-выражениями . Похожую категорию инструкций образуют инструкции-объявления , которые объявляют новые переменные и определяют новые функции.
Программы на языке JavaScript представляют собой не более чем последовательности выполняемых инструкций. По умолчанию интерпретатор JavaScript выполняет эти инструкции одну за другой в порядке их следования. Другой способ сделать так, чтобы «что-то происходило», заключается в том, чтобы влиять на этот порядок выполнения по умолчанию, для чего в языке JavaScript имеется несколько инструкций, или управляющих конструкций, специально предназначенных для этого:
Читать дальшеИнтервал:
Закладка: