Несмотря на то, что JavaScript является наиболее широко используемым языком программирования в мире, он наиболее недооценен и недооценен. За последние несколько лет ситуация улучшилась, но эти мифы все еще пронизывают мир информационных технологий.
1. JavaScript == Java
Британский разработчик Джереми Кит разработал лучшее объяснение:
Ява для JavaScript, как ветчина для хомяка
Имена похожи до смешного, но Java и JavaScript не связаны между собой. Существует ряд поверхностных сходств, но то же самое можно сказать и о любом языке, использующем C-подобный синтаксис.
Язык изначально назывался Mocha, стал LiveScript и, наконец, JavaScript в то время, когда Java была объявлена спасителем жизни, вселенной и всего остального. Название отражает маркетинговые усилия Netscape, а не какие-либо отношения.
2. JavaScript — это «игрушечный» язык
Часть имени «сценария» создает впечатление, что JavaScript — это некий тип урезанной, похожей на макрос или менее способной версии Java. Это не. Во всяком случае, популярные функции JavaScript, такие как замыкания и лямбда-функции, теперь находят свое применение в других языках (PHP, C # и сама Java).
JavaScript чаще всего встречается как интерпретируемый язык на основе браузера, но это не значит, что он менее мощный или компетентный, чем скомпилированный язык на основе ОС.
3. JavaScript можно найти только в браузерах
Большинство людей воспринимают JavaScript как встроенный язык браузера, но его (или языки, основанные на стандарте ECMAScript) можно найти во многих других местах, например
- Браузер Mozilla Firefox и почтовый клиент Thunderbird используют JavaScript для некоторых процессов приложения
- Flash ActionScript основан на JavaScript
- PDF-файлы могут иметь встроенный JavaScript
- многие виджеты Microsoft и Apple для рабочего стола используют JavaScript
- OpenOffice.org обеспечивает поддержку JavaScript
- WebOS, используемый в мобильных телефонах Palm, использует JavaScript для своей платформы приложений
- JavaScript можно использовать в качестве языка программирования приложений на рабочем столе GNOME и в качестве языка сценариев в Windows.
JavaScript не имеет сильного присутствия на стороне сервера, но существует несколько десятков реализаций. День, когда мы сможем разработать JavaScript на клиенте, и сервер не может прийти достаточно скоро!
4. JavaScript несовместим и глючит
Эти времена давно прошли. Поставщики браузеров придерживаются согласованного стандарта (ECMAScript), и специфичные для JavaScript проблемы встречаются редко.
Однако функции браузера не всегда согласованы: особенности манипулирования DOM, особенности обработки событий и причуды браузера — все это вызывает головную боль при разработке. Это не ошибка самого языка, но объекты браузера, к которым вы можете получить доступ с помощью JavaScript.
5. JavaScript не является объектно-ориентированным
Путаница возникает из-за того, что JavaScript не обеспечивает очевидного наследования, ориентированного на классы. Отсутствие ключевого слова class заставляет многих разработчиков предполагать, что JavaScript — это функциональный язык.
JavaScript предлагает прототип наследования. Настоящая красота заключается в том, что вы можете написать функциональный код языка или использовать классические шаблоны наследования с закрытыми свойствами и методами.
Кроме того, все в JavaScript — это объект, включая нативные типы и функции. Сколько других языков предлагают такие конструкции, как:
var x = new Number(123);
var opp = "oops".substr(0,3);
var f = function() { return function() { alert("hello!"); }; };
Как насчет передачи функции в качестве параметра (это просто другой объект) …
var Add = function(a, b) { return a + b; };
function Calculate(func, a, b) {
return func(a, b);
}
var s = Calculate(Add, 1, 2); // s = 3
Или, возможно, расширение родных типов …
// reverse any string
String.prototype.Reverse = function() {
return this.split("").reverse().join("");
};
var h1 = "Hello!";
var h2 = h1.Reverse(); // !olleH
Вначале JavaScript может показаться немного запутанным, но при переходе на другие языки вы упустите его элегантность и мощь.
Все еще не веришь мне? Вы записались на курс Кевина Янка по JavaScript Live ? Увидимся на форумах.