Ява Золотая: история с географией
Radagast Kary
Несмотря на отсутствие прямой связи с Явными фенечками, ЯваСкрипт
вполне может обращаться к внешним свойствам и методам Ява-апплетов,
встроенных в страницу 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 - это уже предок основного количества встроенных классов
(точнее, всех, кроме вышеперечисленных). Ничего в себе нового
не содержит, но хранится как почетный отец-основатель.