Ява Золотая: история с географией
Radagast Kary
Спецвыпуск хакер, номер #002, стр. 002-056-3
Несмотря на отсутствие прямой связи с Явными фенечками, ЯваСкрипт вполне может обращаться к внешним свойствам и методам Ява-апплетов, встроенных в страницу HTML. Итого, разница сводится, на первый взгляд, только к тому, что Java-скрипты лежат внутри использующего их файла HTML, тогда как Java-программы существуют вовне. Теперь же рассмотрим более детально особенности JavaScript'а.
Понятие бестиповости
JavaScript является исконно бестиповым языком программирования. Эта заумная фраза означает, что пользователю (точнее, программисту - разработчику программного обеспечения на этом языке) все равно, данные какого типа лежат в каждой конкретной переменной: строки, восьмимерные массивы, объекты, числа вещественные или целочисленные и так далее до исчерпания фантазии программера. Именно поэтому в сях переменную объявляют так:
char f='f';
int b=0xB;
unsigned long double pee=3.14;
а в Яваскрипте - так:
var f='f';
var b=134341;
var pee=3.14;
Усек? И при этом тебе теоретически должно быть ярко фиолетово, как именно пишутся твои числа - в кавычечках или без оных. Но это ведь только теория... Постарайся сконцентрировать свою силу воли до такой безумной степени, которая позволит тебе не заснуть окончательно до конца страницы, и тогда бескрайнее море информации обогатит твою бессмертную душу неувядающей мудростью и осознанием этой разницы. Учись, пока я жив.
Объекты и их иерархия
Основное понятие JavaScript - объект, но понимается это не так, как в Яве. Вообще, что такое 'Объект', знаешь? Это что-то типа сумки, в которую можно сложить сразу и дискету, и книжку, и даже собственную ногу (но только одну!) :) И при этом помнить, что в сумке есть все необходимые инструменты для вынимания/вкладывания вещей и для реализации некоторых других простейших действий с ними. В языке JavaScript существуют три праобъекта, от которых происходят все остальные.
Global - содержит только то, что в нормальных (не объектно-ориентированных) языках называется глобальными переменными.
Math - содержит большую кучу математических функций типа синусов-косинусов и всех возможных вариантов округления. Они выделены в отдельный класс (объект) только потому, что их много.
Эти два класса объединяет одно: объект (экземпляр класса) может быть только один на всех. Почему - я думаю ясно. Не может же быть несколько разных синусов? Синус - он и в Африке синус...
Object - это уже предок основного количества встроенных классов (точнее, всех, кроме вышеперечисленных). Ничего в себе нового не содержит, но хранится как почетный отец-основатель.