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

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

Жанры

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

if (а == 4)

b = b + 1;

else

а = а + 1:

Здесь выполняется проверка равенства значения переменной а числу 4. Если равно, к значению переменной b добавляется 1; в противном случае число 1 добавляется к значению переменной а.

Как будет говориться в разделе 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 (или когда вебброузер загружает новую страницу), создается новый глобальный объект, в котором инициализируется начальный набор свойств, определяющих:

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

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

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

Я - злодейка в дораме. Сезон второй

Вострова Екатерина
2. Выжить в дораме
Фантастика:
уся
фэнтези
сянься
попаданцы
5.00
рейтинг книги
Я - злодейка в дораме. Сезон второй

Ученик. Книга третья

Первухин Андрей Евгеньевич
3. Ученик
Фантастика:
фэнтези
7.64
рейтинг книги
Ученик. Книга третья

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Геном хищника. Книга девятая

Гарцевич Евгений Александрович
9. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга девятая

Перешагнуть пропасть

Муравьёв Константин Николаевич
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Перешагнуть пропасть

Эпоха Опустошителя. Том VII

Павлов Вел
7. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VII

Хозяин теней 2

Демина Карина
2. Громов
Фантастика:
аниме
попаданцы
фэнтези
7.00
рейтинг книги
Хозяин теней 2

Целого Мира Мало

Джиллиан Алекс
Любовные романы:
современные любовные романы
8.88
рейтинг книги
Целого Мира Мало

Хозяин Стужи 8

Петров Максим Николаевич
8. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 8

Шайтан Иван 5

Тен Эдуард
5. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
5.00
рейтинг книги
Шайтан Иван 5

Черта прикрытия

Бэнкс Иэн М.
9. Культура
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
6.67
рейтинг книги
Черта прикрытия

Вернувшийся: Новая жизнь. Том I

Vector
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I

Я уже царь. Книга XXIX

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