Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Оператор

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="#">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 имеется несколько инструкций, или управляющих конструкций, специально предназначенных для этого:

Поделиться:
Популярные книги

Тринадцатый X

NikL
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Тринадцатый X

Старый, но крепкий 9

Крынов Макс
9. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
сянься
5.00
рейтинг книги
Старый, но крепкий 9

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Последний реанорец. Том IX

Павлов Вел
8. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Последний реанорец. Том IX

Его звали Тони. Книга 5

Кронос Александр
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Его звали Тони. Книга 5

Кодекс Крови. Книга ХVIII

Борзых М.
18. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVIII

Тактик

Земляной Андрей Борисович
2. Офицер
Фантастика:
альтернативная история
7.70
рейтинг книги
Тактик

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Я до сих пор царь. Книга XXXII

Дрейк Сириус
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор царь. Книга XXXII

Газлайтер. Том 22

Володин Григорий Григорьевич
22. История Телепата
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Газлайтер. Том 22

Князь Андер Арес 4

Грехов Тимофей
4. Андер Арес
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Князь Андер Арес 4

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Двойник короля 17

Скабер Артемий
17. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 17