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

Сноски из книги

· #1

Этот формат знаком программистам на языке Java как тип double. Этот-же формат используется для представления чисел типа double в большинстве современных реализаций языков С и С++)

· #2

Согласно стандарту ECMAScript 3 функция parseInt() может выполнять преобразование строки, начинающейся с символа «О» (но не «Ох» или «ОХ»), в восьмеричное или десятичное число. Поскольку поведение функции четко не определено, следует избегать использования функции parseInt() для интерпретации строк, начинающихся с «О», или явно указывать основание системы счисления! В ECMAScript 5 функция parselnt() будет интерпретировать строки как восьмеричные числа, только если ей во втором аргументе явно указать основание 8 системы счисления.)

· #3

Программистам на C++ следует обратить внимание, что delete в JavaScript совершенно не похож на delete в C++. В JavaScript освобождение памяти выполняется сборщиком мусора автоматически, и беспокоиться о явном освобождении памяти не надо. Поэтому в операторе delete в стиле C++, удаляющем объекты без остатка, нет необходимости.

· #4

Тот факт, что выражения в метках case вычисляются во время выполнения программы, существенно отличает инструкцию switch в языке JavaScript (и делает ее менее эффективной) от инструкции switch в С, C++ и Java. В этих языках выражения case должны быть константами, вычисляемыми на этапе компиляции, и иметь один тот же тип. Кроме того, инструкция switch в этих языках часто может быть реализована с использованием высокоэффективной таблицы переходов.

· #5

Как мы увидим, когда будем знакомиться с инструкцией continue в разделе 5.6.3, этот цикл while не является точным эквивалентом цикла for.

· #6

Реализации, следующие стандарту ECMAScript 3, в этом случае могут возбуждать исключение ТуреЕrror.

· #7

К самому внутреннему по вложенности охватывающему обработчику исключений. -Прим. науч. ред.

· #8

Дуглас Крокфорд (Douglas Crockford) считается первым, кто реализовал функцию, создающую объекты таким способом. См. http://javascript.crockford.com/prototypal.html.

· #9

Функция extend(), представленная здесь, реализована правильно, но она не компенсирует хорошо известную проблему в Internet Explorer. Более надежная версия функции extend() будет представлена в примере 8.3.

· #10

И в последних версиях реализации стандарта ECMAScript 3 в основных броузерах, кроме IE.

· #11

Некоторые реализации JavaScript могут иметь менее строгие требования. Например, в броузере Firefox допускается наличие «условных определений функций» внутри инструкций if.

· #12

Термин был введен Мартином Фаулером (Martin Fowler). См. http://martinfowler.com/ dslwip/MethodChaining.html.

· #13

Это может показаться не столь интересным, если вы не знакомы с такими языками, как Java, в которых функции являются частью программы, но не могут управляться программой.

· #14

Это старый термин, который отражает тот факт, что переменные функции привязаны к цепочке областей видимости, вследствие чего функция образует «замыкание» по своим переменным.

· #15

(Если эта тема вам любопытна, вероятно, вас заинтересует возможность использования (или хотя бы знакомства) библиотеки Functional JavaScript Оливера Стила (Oliver Steel), которую можно найти по адресу: http://osteele.com/sources/javascript/functional/

· #16

Этот пример основан на примере для языка Java, написанном Джошуа Блохом (Joshua Bloch) и доступном по адресу: http://jcp.org/aboutJava/communityprocess/jsr/tiger/enum.html.)

· #17

(То есть являются эквивалентными копиями-экземплярами одного класса. - Прим. на- уч.ред.)

· #18

См. Э. Гамма и др. «Приемы объектно-ориентированного проектирования. Паттерны проектирования» или Дж. Блох «Java. Эффективное программирование».

· #19

В число особенностей регулярных выражений языка Perl, которые не поддерживаются в ECMAScript, входят флаги s (однострочный режим) и х (расширенный синтаксис); управляющие последовательности а, е, 1, и, L, U, Е, (), А, Z, z и G; якорь (?<= позитивной ретроспективной проверки и якорь (?<! негативной ретроспективной проверки; комментарии^# и другие расширенные конструкции, начинающиеся с (?.

· #20

За исключением класса символов (квадратных скобок), где Ь соответствует символу «забой».

· #21

Точнее, любого пробельного символа. - Прим. науч. ред.

· #22

Генераторы иногда называют «итераторами-генераторами», чтобы отличить их от создающих их функций-генераторов. В этой главе вместо термина «итераторы-генераторы» мы будем использовать термин «генераторы». В других источниках вы можете встретить термин «генератор», обозначающий одновременно и функции-генераторы, и итераторы-генераторы.

· #23

На момент написания этих строк выражения-генераторы не поддерживались в Rhino.

· #24

На момент написания этих строк данная особенность не поддерживалась в Rhino.

· #25

Расширение Е4Х определяется стандартром ЕСМА-357. Официальную спецификацию можно найти по адресу: http//www.ecma-interational.org/publications/standarts/Ecma-357.htm

· #26

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

· #27

Интерпретатор Node реализует протокол CommonJS работы с модулями, описание которого можно найти по адресу http://www.commonjs.org/specs/modules/LO/.

· #28

Интерактивные веб-страницы, взаимодействующие с серверными CGI-сценариями посредством форм HTML также можно считать «веб-приложениями», и они могут быть написаны без применения JavaScript. Однако это не тот тип веб-приложений, которые мы будем обсуждать в этой книге.

· #29

В некоторых броузерах имеется механизм предотвращения атак типа отказа в обслуживании и случайных зацикливаний, который выводит перед пользователем окно запроса, если сценарий или обработчик события выполняется слишком долго, и позволяет прервать выполнение зациклившегося сценария.

· #30

Справедливости ради следует отметить, что версия IE9 поддерживает и элемент <canvas>, и метод addEventListener().

· #31

Похожая статья в Википедии на русском языке: http://ru.wikipedia.org/wiki/CpaeHe-ние_браузеров_(НТМЬ5). - Прим. перев.

· #32

Обычно такие окна называют модальными. - Прим, науч.ред.

· #33

Этот последний пункт является небольшим отступлением от стандартов ES3 и ES5, но это необходимо для поддержки взаимодействующих контекстов выполнения в клиентском JavaScript.

· #34

Определение селекторов CSS3 можно найти по адресу http://www.w3.org/TR/css3-selec-tors/.

· #35

Стандарт «Selectors АРІ» не является частью стандарта HTML5, но тесно связан с ним. Подробности смотрите по адресу http://www.w3.org/TR/selectors-api/.

· #36

Самостоятельная версия библиотеки Sizzle доступна по адресу http://sizzlejs.com.

· #37

http://www.w3.org/TR/ElementTraversal.

· #38

IE поддерживает возможность расширения прототипов объектов Element, HTMLDocument и Text, но не поддерживает для объектов Node, Document, HTMLElement и всех подтипов типа HTMLElement

· #39

Список поддерживаемых команд можно найти по адресу http://www.quirksmode.org/ йот/execCommand.html.

· #40

Фреймворки YUI и Dojo включают такие компоненты редакторов. Список других решений можно найти на странице http://en.wikipedia.org/wiki/Online_rich-text_editor.

· #41

Рекомендуемое издание: Эрик Мейер «CSS - каскадные таблицы стилей. Подробное руководство», 3-є издание - Пер. с англ. - СПб.: Символ-Плюс, 2008.

· #42

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

· #43

Стандарты определяют целую иерархию объектов событий для событий различных типов. Интерфейс Event описывает «простые» события, которые не сопровождаются дополнительной информацией. Например, подкласс MouseEvent описывает дополнительные поля, доступные в объектах событий, передаваемых при возбуждении события от мыши, а подкласс Key Event описывает поля, которые можно использовать при обработке событий от клавиатуры. Описания всех этих классов в данной книге помещены в общую справочную статью Event.

· #44

Единственным часто используемым событием, в имени которого присутствует приставка «DOM», является событие «DOMContentLoaded». Это событие было введено компанией Mozilla и никогда не являлось частью стандарта «DOM Events».

· #45

Стандарт «DOM Level 2» не определяет порядок вызова обработчиков, но все текущие броузеры вызывают обработчики в порядке их регистрации, а текущий проект стандарта «DOM Level 3» определяет именно такой порядок вызова.

· #46

Объект события, определяемый в библиотеке jQuery (глава 19), вместо свойства имеет метод defaultPrevented().

· #47

Довольно рискованное решение: если будущие версии стандарта не будут соответствовать проекту спецификации, имевшейся на момент написания этих строк, это может привести к нежелательным последствиям и сделать пример неработоспособным.

· #48

Ajax - это аббревиатура от Asynchronous JavaScript and XML (асинхронный JavaScript и XML). Этот термин предложил Джесси Джеймс Гаррет (Jesse James Garrett) и впервые использовал его в своей статье «Ajax: A New Approach to Web Applications» в феврале 2005 года (http://wwwMdaptivepath.com/publications/essays/archives/000385.php) (От переводчика: перевод этой статьи на русский язык можно найти по адресу http://galleo. ги/articles,fwl60.). В течение многих лет термин «Ajax» был громким словом, которое употребляли к месту и не к месту, а сейчас это всего лишь удобный термин, обозначающий архитектуру веб-приложения, опирающегося в своей работе на НТТР-запросы.

· #49

Имя Comet было предложено Алексом Расселом (Alex Russell) в статье «Comet: Low Latency Data for the Browser» (http://infrequently.org/2006/03/comet-low-latency-data-for-the-browser/). Вероятно, выбирая такое имя, Алекс Рассел хотел обыграть термин Ajax: дело в том, что в США Comet и Ajax являются названиями чистящих средств.

· #50

Такие изображения иногда называют веб-жучками (web bugs). Они пользуются дурной славой из-за проблем с безопасностью, когда используются для обмена информацией со сторонним сервером, не тем, откуда была загружена страница. Одно из типичных применений веб-жучков - подсчет числа посещений и анализа трафика веб-сервера.

· #51

Термин «JSONP» предложил Боб Ипполито (Bob Ippolito) в 2005 году (http://bob.py-thonmac.org/archives/2005/12/05/remote-json-jsonp/).

· #52

В число широко используемых входят также не описываемые в этой книге библиотеки Prototype, YUI и dojo. Еще большее количество библиотек можно отыскать в Интернете, выполнив поиск по фразе «JavaScript libraries».

· #53

Если Вы определяете собственное имя $ в своих сценариях или используете другую библиотеку, такую как Prototype, тоже использующую имя $, Вы можете вызвать метод JQuery.noConflict(), чтобы восстановить оригинальное имя $)

· #54

На момент написания этой главы текущей версией библиотеки jQuery была 1.4.2. Когда книга готовилась к печати, была выпущена версия jQuery 1.5. Изменения в jQuery 1.5 в основном касаются механизма поддержки архитектуры Ajax и будут упоминаться в разделе 19.6.

· #55

В библиотеке jQuery термин «связывание» используется для обозначения регистрации обработчиков событий. Стандарт ECMAScript 5 и многие фреймворки на языке JavaScript определяют в объектах функций метод bind() (раздел 8.7.4) и используют этот термин для обозначения связи функций с объектами, относительно которых они вызываются. Версия метода Function. bind() в библиотеке jQuery является вспомогательной функцией с именем jQuery. ргоху(), которая описывается в разделе 19.7.

· #56

Идея этого примера была подсказана приложением Halfnote, написанным Аароном Будманом (Aaron Boodman). Приложение Halfnote было одним из первых автономных веб-приложений.

· #57

На момент написания этих строк в версии 5 броузера Google Chrome тени были реализованы с ошибкой, и их смещения были подвержены действию преобразований.

· #58

Спецификация «Web Workers» изначально была частью спецификации HTML5, но затем была выделена в отдельный, независимый, хотя и тесно связанный со стандартом, документ. На момент написания этих строк проект спецификации был доступен по адресам http://dev.w3.org/html5/workers/ и http://whatwg.org/ww.

· #59

На момент написания этих строк броузер Chrome не запрашивал разрешение у пользователя, но требовал, чтобы он был запущен с ключом командной строки — unlimited-quota-for-files.

· #60

В 1972-1978 гг. телекомпания WGBH-TV в Бостоне выпускала детское телешоу «ZOOM». Детям предлагалось после шоу «выключить телевизор и сделать то, о чем рассказывалось в передаче...». Дети, обычно семеро, участвовавшие в шоу, играли в игры, ставили пьесы, рассказывали стихи, ставили научные эксперименты, вели беседы на такие темы, как больницы, предрассудки и другие, предлагаемые телезрителями. Передача имела призыв со словами: «Напишите на конверте ZOOM, Зет-Дабл-Оу-М, Бокс 3-5-0, Бостон, Масс 0-2-1-3-4 и отправьте его на ZOOM!». Весь текст проговаривался, кроме индекса, который пропевался. Описание в Википедии: http://en.wikipedia.org/wiki/ZOOM_ (1972_TV_series). - Прим, перев.

· #61

В других языках программирования эта операция может называться «fold» или «inject». Однако в русскоязычной литературе эти термины переводятся как «свертка» (Прим. перев.))

· #62

Имя свойства указывается в форме единственного числа. - Прим, перев.

· #63

В клиентском JavaScript нет типа TypedArray. Автор использовал это символическое имя для более краткого обозначения типизированных массивов. - Прим.ред.

----

Оглавление книги


Генерация: 0.257. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз