Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание
- Название:JavaScript. Подробное руководство, 6-е издание
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2012
- Город:СПб
- ISBN:978-5-93286-215-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание краткое содержание
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
JavaScript. Подробное руководство, 6-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Как будет говориться в разделе 3.8, любое значение в языке JavaScript может быть преобразовано в логическое значение. Следующие значения в результате такого преобразования дают логическое значение (и затем работают как) false
:
undefined
null
0
-0
NaN
// пустая строка
Все остальные значения, включая все объекты (и массивы), при преобразовании дают в результате значение (и работают как) true
. Значение false
и шесть значений, которые при преобразовании приводятся к этому значению, иногда называют ложными, а все остальные - истинными. В любом контексте, когда интерпретатор JavaScript ожидает получить логическое значение, ложные значения интерпретируются как false
, а истинные значения - как true
.
В качестве примера предположим, что переменная о
может хранить объект или значение null
. В этом случае можно явно проверить значение переменной о на неравенство значению null, как показано ниже:
if (о !== null) ...
Оператор «не равно» !==
сравнит переменную о со значением null
и вернет в результате true
или false
. Однако вы можете опустить оператор сравнения и положиться на тот факт, что null
является ложным значением, а объект - истинным:
if (о) ...
В первом случае тело инструкции if
будет выполнено, только если значение переменной о не равно null
. Во втором - ставится менее жесткое условие: тело инструкции if
будет выполнено, только если о не содержит false
или другое ложное значение (такое как null
или undefined
). Какая инструкция if
больше подходит для вашей программы, зависит от того, какие значения могут присваиваться переменной о
. Если в программе необходимо отличать значение null
от 0
и ""
, то следует использовать явную операцию сравнения.
Логические значения имеют метод toString()
, который можно использовать для преобразования этих значений в строки «true» или «false», но они не имеют других полезных методов. Несмотря на простоту прикладного интерфейса, в языке имеется три важных логических оператора.
Оператор &&
выполняет логическую операцию И. Он возвращает истинное значение, только если оба операнда истинны - в противном случае он возвращает ложное значение. Оператор ||
выполняет логическую операцию ИЛИ: он возвращает истинное значение, если хотя бы один (или оба) из операндов является истинным, и ложное значение - если оба операнда являются ложными. Наконец, унарный оператор !
выполняет логическую операцию НЕ: он возвращает значение true
для ложного операнда и false
- для истинного. Например:
if ((х == 0 && у == 0) И !(z == 0)) {
// х и у содержат значение 0 или z не равна нулю
}
Полное описание этих операторов приводится в разделе 4.10.
3.4. Значения null и undefined
Ключевое слово null
в языке JavaScript имеет специальное назначение и обычно используется для обозначения отсутствия значения. Оператор typeof
для значения null
возвращает строку «object», что говорит о том, что значение null
является специальным «пустым» объектом. Однако на практике значение null
обычно считается единственным членом собственного типа и может использоваться как признак отсутствия значения, такого как число, строка или объект. В большинстве других языков программирования имеются значения, аналогичные значению null
в JavaScript: вам они могут быть известны как null
или nil
.
В языке JavaScript имеется еще одно значение, свидетельствующее об отсутствии значения. Значение undefined
, указывающее на полное отсутствие какого-либо значения. Оно возвращается при обращении к переменной, которой никогда не присваивалось значение, а также к несуществующему свойству объекта или элементу массива. Кроме того, значение undefined
возвращается функциями, не имеющими возвращаемого значения, и присваивается параметрам функций для аргументов, которые не были переданы при вызове. Идентификатор undefined
является именем предопределенной глобальной переменной (а не ключевым словом, как null
), которая инициализирована значением undefined
. В ECMAScript 3 undefined
является переменной, доступной для чтения/записи, которой можно присвоить любое другое значение. Эта проблема была исправлена в ECMAScript 5, и в реализациях JavaScript, соответствующих этому стандарту, переменная undefined
доступна только для чтения. Оператор typeof
для значения undefined
возвращает строку «undefined», показывающую, что данное значение является единственным членом специального типа.
Несмотря на эти отличия, оба значения, null
и undefined
, являются признаком отсутствия значения и часто являются взаимозаменяемыми. Оператор равенства ==
считает их равными. (Чтобы отличать их в программе, можно использовать оператор идентичности ===
.) Оба они являются ложными значениями - в логическом контексте они интерпретируются как значение false
. Ни null
, ни undefined
не имеют каких-либо свойств или методов. На практике попытка использовать .
или []
, чтобы обратиться к свойству или методу этих значений, вызывает ошибку ТуреЕrror.
Значение undefined
можно рассматривать как признак неожиданного или ошибочного отсутствия какого-либо значения, a null
- как признак обычного или вполне ожидаемого отсутствия значения. Если в программе потребуется присвоить одно из этих значений переменной или свойству или передать одно из этих значений функции, практически всегда предпочтительнее использовать значение null
.
3.5. Глобальный объект
В разделах выше описывались простые типы данных и значения языка JavaScript. Объектные типы - объекты, массивы и функции - описываются в отдельных главах, далее в книге. Но существует один важный объект, с которым необходимо познакомиться сейчас. Глобальный объект - это обычный объект JavaScript, который играет очень важную роль: свойства этого объекта являются глобальными идентификаторами, доступными из любого места в программах на JavaScript. Когда выполняется запуск интерпретатора JavaScript (или когда вебброузер загружает новую страницу), создается новый глобальный объект, в котором инициализируется начальный набор свойств, определяющих:
Читать дальшеИнтервал:
Закладка: