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

Тут можно читать онлайн Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание - бесплатно ознакомительный отрывок. Жанр: comp-db, издательство Символ-Плюс, год 2012. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    JavaScript. Подробное руководство, 6-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Символ-Плюс
  • Год:
    2012
  • Город:
    СПб
  • ISBN:
    978-5-93286-215-5
  • Рейтинг:
    2.5/5. Голосов: 21
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

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

JavaScript. Подробное руководство, 6-е издание - описание и краткое содержание, автор Дэвид Флэнаган, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C момента выхода первого издания в 1996 году книга "JavaScript: Подробное руководство" превратилась в библию программистов на JavaScript. За эти годы было издано более 500000 экземпляров, и веб-разработчики по-прежнему с восторгом отзываются о ней.
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.

JavaScript. Подробное руководство, 6-е издание - читать онлайн бесплатно ознакомительный отрывок

JavaScript. Подробное руководство, 6-е издание - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Дэвид Флэнаган
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

d instanceof Date; // Вернет true; объект d был создан с функцией Date()

d instanceof Object; // Вернет true; все объекты являются экземплярами Object

d instanceof Number; // Вернет false; d не является объектом Number

var a = [1, 2, 3]; // Создать массив с помощью литерала массива

a instanceof Array; // Вернет true; а - это массив

a instanceof Object; // Вернет true; все массивы являются объектами

a instanceof RegExp;// Вернет false; массивы не являются регулярными выражениями

Обратите внимание, что все объекты являются экземплярами класса Object . Определяя, является ли объект экземпляром класса, оператор instanceof принимает во внимание и «суперклассы». Если левый операнд instanceof не является объектом, instanceof возвращает false . Если правый операнд не является функцией, возбуждается исключение ТуреЕггог .

Чтобы понять, как действует оператор instanceof , необходимо познакомиться с таким понятием, как «цепочка прототипов». Это - механизм наследования в JavaScript; он описывается в разделе 6.2.2. Чтобы вычислить значение выражения о instanceof f , интерпретатор JavaScript определяет значение f.prototype и затем пытается отыскать это значение в цепочке прототипов объекта о . В случае успеха объект о считается экземпляром класса f (или суперкласса класса f ), и оператор возвращает true . Если значение f.prototype отсутствует в цепочке прототипов объекта о , то объект о не является экземпляром класса f и оператор instanceof возвращает false .

4.10. Логические выражения

Логические операторы &&, || и ! используются для выполнения операций булевой алгебры и часто применяются в сочетании с операторами отношений для объединения двух выражений отношений в одно более сложное выражение. Эти операторы описываются в подразделах, следующих ниже. Чтобы понять, как они действуют, вам может потребоваться еще раз прочитать о концепции «истинности» и «ложности» значений в разделе 3.3.

4.10.1. Логическое И (&&)

Условно говоря, оператор && действует на трех уровнях. На самом простом уровне, когда в операции участвуют логические операнды, оператор && выполняет операцию «логическое И» над двумя значениями: он возвращает true тогда и только тогда, когда оба операнда имеют значение true . Если один или оба операнда имеют значение false , оператор возвращает false .

Оператор && часто используется для объединения двух выражений отношений:

х == 0 && у == 0 // true тогда и только тогда, когда х и у равны 0

Выражения отношений всегда возвращают значение true или false , поэтому в подобных ситуациях сам оператор && всегда возвращает true или false . Операторы отношений имеют более высокий приоритет, чем оператор &&|| ), поэтому такие выражения можно записывать без использования скобок.

Но оператор && не требует, чтобы его операнды были логическими значениями. Напомню, что все значения в языке JavaScript являются либо «истинными», либо «ложными». (Подробности в разделе 3.3. Ложными значениями являются false, null, undefined, 0, -0, NaN и "". Все другие значения, включая все объекты, являются истинными.) На втором уровне оператор && действует как логическое И для истинных и ложных значений. Если оба операнда являются истинными, оператор возвращает истинное значение. В противном случае, когда один или оба операнда являются ложными, возвращается ложное значение. В языке JavaScript все выражения и инструкции, использующие логические значения, будут также работать с истинными или ложными значениями, поэтому тот факт, что оператор && не всегда возвращает true или false, на практике не вызывает никаких проблем.

Обратите внимание, что в предыдущем абзаце говорилось, что оператор возвращает «истинное значение» или «ложное значение», но при этом не уточнялось, какое именно значение возвращается. Для этого нам необходимо перейти на третий, заключительный уровень оператора && . Свою работу оператор начинает с вычисления первого операнда - выражения слева. Если выражение слева возвращает ложное значение, значением всего выражения также должно быть ложное значение, поэтому оператор && просто возвращает значение слева и не вычисляет выражение справа.

В противном случае, если значение слева является истинным, тогда результат всего выражения определяется значением справа. Если значение справа является истинным, значением всего выражения также должно быть истинное значение, а если значение справа является ложным, значением всего выражения должно быть ложное значение. Поэтому, когда значение слева является истинным, оператор && вычисляет и возвращает значение справа:

var о = { х : 1 };

var р = null;

о && о.х // => 1: о - истинное значение, поэтому возвращается о.х

р && р.х // => null: р - ложное значение, поэтому возвращается р,

// а выражение р.х не вычисляется

Важно понимать, что оператор && может не вычислять выражение правого операнда. В примере выше переменная р имеет значение null , поэтому попытка вычислить выражение р.х привела бы к ошибке ТуреЕггог. Но здесь задействован оператор &&, благодаря чему выражение р.х вычисляется, только если р будет содержать истинное значение - не null или undefined.

Такое поведение оператора && иногда называют «короткой схемой вычислений», и иногда можно встретить программный код, в котором такое поведение оператора && используется специально для выполнения инструкций по условию. Например, следующие две строки дают одинаковый результат:

if (а == b) stop(); // Функция stop() вызывается, только если а == b

(а == b) && stop(); // То же самое

В целом следует с осторожностью использовать выражения с побочными эффектами (присваивания, инкременты, декременты или вызовы функций) справа от оператора && , потому что эти побочные эффекты будут проявляться в зависимости от значения слева.

Несмотря на довольно запутанный алгоритм работы этого оператора, проще всего и абсолютно безопасно рассматривать его как оператор булевой алгебры, который манипулирует истинными и ложными значениями.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Дэвид Флэнаган читать все книги автора по порядку

Дэвид Флэнаган - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге JavaScript. Подробное руководство, 6-е издание, автор: Дэвид Флэнаган. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x