111 lines
No EOL
9.4 KiB
Markdown
111 lines
No EOL
9.4 KiB
Markdown
# Справочники и спецификации
|
||
|
||
В этом разделе мы познакомимся со справочниками и спецификациями.
|
||
|
||
Если вы только начинаете изучение, то вряд ли они будут нужны прямо сейчас. Тем не менее, эта глава находится в начале, так как предсказать точный момент, когда вы захотите заглянуть в справочник -- невозможно, но точно известно, что этот момент настанет.
|
||
|
||
Поэтому рекомендуется кратко взглянуть на эту страницу и взять её на заметку, чтобы при необходимости вернуться к ней в будущем.
|
||
|
||
[cut]
|
||
|
||
## Справочники, и как в них искать
|
||
|
||
Самая полная и подробная информация по JavaScript и браузерам есть в справочниках.
|
||
|
||
Её объём таков, что перевести все с английского невозможно. Даже сделать "единый полный справочник" не получается, так как изменений много и они постоянно происходят.
|
||
|
||
Тем не менее, жить вполне можно если знать, куда смотреть.
|
||
|
||
**Есть три основных справочника по JavaScript на английском языке**:
|
||
|
||
<ol>
|
||
<li>[Mozilla Developer Network](https://developer.mozilla.org/) -- содержит информацию, верную для основных браузеров. Также там присутствуют расширения только для Firefox, они помечены.
|
||
|
||
Когда мне нужно быстро найти "стандартную" информацию по `RegExp` - ввожу в Google **"RegExp MDN"**, и ключевое слово "MDN" (Mozilla Developer Network) приводит к информации из этого справочника.
|
||
</li>
|
||
<li>[MSDN](http://msdn.microsoft.com) -- справочник от Microsoft. Там много информации, в том числе и по JavaScript (они называют его "JScript"). Если нужно что-то, специфичное для IE -- лучше лезть сразу туда.
|
||
|
||
Например, для информации об особенностях `RegExp` в IE -- полезное сочетание: **"RegExp msdn"**. Иногда к поисковой фразе лучше добавить термин "JScript": **"RegExp msdn jscript"**. </li>
|
||
<li>[Safari Developer Library](https://developer.apple.com/library/safari/navigation/index.html) -- менее известен и используется реже, но в нём тоже можно найти ценную информацию.</li>
|
||
</ol>
|
||
|
||
Есть ещё справочники, не от разработчиков браузеров, но тоже хорошие:
|
||
|
||
<ol>
|
||
<li>[http://help.dottoro.com]() -- содержит подробную информацию по HTML/CSS/JavaScript.</li>
|
||
<li>[http://javascript.ru/manual]() -- справочник по JavaScript на русском языке, он содержит основную информацию по языку, без функций для работы с документом. К нему можно обращаться и по адресу, если знаете, что искать. Например, так: [http://javascript.ru/RegExp]().
|
||
</li>
|
||
<li>[http://www.quirksmode.org]() -- информация о поддержке тех или иных возможностей и несовместимостях.
|
||
Для поиска можно пользоваться комбинацией **"quirksmode onkeypress"** в Google.
|
||
</li>
|
||
</ol>
|
||
|
||
## Спецификации
|
||
|
||
Спецификация -- это самый главный, определяющий документ, в котором написано, как себя ведёт JavaScript, браузер, CSS и т.п.
|
||
|
||
Если что-то непонятно, и справочник не даёт ответ, то спецификация, как правило, раскрывает тему гораздо глубже и позволяет расставить точки над i.
|
||
|
||
### Спецификация ECMAScript
|
||
|
||
Спецификация (формальное описание синтаксиса, базовых объектов и алгоритмов) языка Javascript называется <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript</a>.
|
||
|
||
Ее перевод есть на сайте в разделе [стандарт языка](http://javascript.ru/ecma).
|
||
|
||
[smart header="Почему не просто "JavaScript" ?"]
|
||
Вы можете спросить: "Почему спецификация для JavaScript не называется просто *"JavaScript"*, зачем существует какое-то отдельное название?"
|
||
|
||
Всё потому, что JavaScript™ -- зарегистрированная торговая марка, принадлежащая корпорации Oracle.
|
||
|
||
Название "ECMAScript" было выбрано, чтобы сохранить спецификацию независимой от владельцев торговой марки.
|
||
[/smart]
|
||
|
||
Спецификация может рассказать многое о том, как работает язык, и является самым фундаментальным, доверенным источником информации.
|
||
|
||
Мы живем во время, когда все быстро изменяется. Современный стандарт -- это <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMA-262 5.1</a> (или просто ES5), поддерживается всеми современными браузерами.
|
||
|
||
Не за горами -- новая спецификация ES6, в которой предусмотрены еще много полезных возможностей, делающих разработку быстрее и веселее :)
|
||
|
||
### Спецификации HTML/CSS
|
||
|
||
JavaScript -- язык общего назначения, поэтому в спецификации ECMAScript нет ни слова о браузерах.
|
||
|
||
Соответствующую информацию вы можете найти на сайте [w3.org](http://w3.org). Там расположены стандарты HTML, CSS и многие другие.
|
||
|
||
К сожалению, найти в этой куче то, что нужно, может быть нелегко, особенно когда неизвестно в каком именно стандарте искать. Самый лучший способ -- попросить Google с указанием сайта.
|
||
|
||
Например, для поиска `document.cookie` набрать [document.cookie site:w3.org](https://www.google.com/search?q=document.cookie+site%3Aw3.org).
|
||
|
||
Последние версии стандартов расположены на домене [dev.w3.org](http://dev.w3.org).
|
||
|
||
## Итого
|
||
|
||
Итак, посмотрим какие у нас есть источники информации.
|
||
|
||
Справочники:
|
||
<ul>
|
||
<li><a href="https://developer.mozilla.org/">Mozilla Developer Network</a> -- информация для Firefox и большинства браузеров.
|
||
Google-комбо: `"RegExp MDN"`, ключевое слово "MDN".</li>
|
||
<li><a href="http://msdn.microsoft.com/">MSDN</a> -- информация по IE.
|
||
Google-комбо: `"RegExp msdn"`. Иногда лучше добавить термин "JScript": `"RegExp msdn jscript"`.</li>
|
||
<li>[Safari Developer Library](https://developer.apple.com/library/safari/navigation/index.html) -- информация по Safari.</li>
|
||
<li><a href="http://help.dottoro.com">http://help.dottoro.com</a> -- подробная информация по HTML/CSS/JavaScript с учетом браузерной совместимости.
|
||
Google-комбо: `"RegExp dottoro"`.</li>
|
||
<li>[](http://javascript.ru/manual) -- справочник по JavaScript на русском языке. К нему можно обращаться и по адресу, если знаете, что искать. Например, так: [](http://javascript.ru/RegExp).
|
||
Google-комбо: `"RegExp site:javascript.ru"`.
|
||
</li>
|
||
</ul>
|
||
|
||
Спецификации содержат важнейшую информацию о том, как оно "должно работать":
|
||
|
||
<ul>
|
||
<li>JavaScript, современный стандарт [ES5 (англ)](http://www.ecma-international.org/publications/standards/Ecma-262.htm), и предыдущий [ES3 (рус)](http://javascript.ru/ecma).</li>
|
||
<li>HTML/DOM/CSS -- на сайте [w3.org](http://www.w3.org).
|
||
Google-комбо: `"document.cookie site:w3.org"`.</li>
|
||
</ul>
|
||
|
||
То, как оно на самом деле работает и несовместимости:
|
||
|
||
<ul>
|
||
<li>Смотрите <a href="http://www.quirksmode.org/">http://www.quirksmode.org/</a>. Google-комбо: `"innerHeight quirksmode"`.</li>
|
||
</ul> |