JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 41

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