Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
HTML и JavaScript.doc
Скачиваний:
19
Добавлен:
11.12.2018
Размер:
1.61 Mб
Скачать

Глава 6. Введение в JavaScript

Прежде чем начать знакомство с данной главой учтите, что она посвящена лишь объяснению некоторых особенностей языка, а не изучению его «с нуля». Если есть желание более глубоко познакомиться с данным языком, рекомендуется к прочтению книга Дэвида Флэнагана «JavaScript. Подробное руководство».

Что такое JavaScript?

Первое и наиболее распространенное заблуждение — путать Java и JavaScript. Это два совершенно разных языка, пусть и с похожим синтаксисом. Изначально JavaScript планировалось выпустить с названием LiveScript, но оно было изменено на JavaScript.

Наиболее свежей версией языка является 1.8.1 (1.9.3 тестовая). Также существует версия JavaScriptа 2.0 (5 редакция принята 3 декабря 2009 года). Однако наиболее до сих пор распространенным синтаксисом является синтаксис JavaScript 1.5, поддержка которого началась еще в 2000 году.

JavaScript (JS) является интерпретируемым языком, но при этом код выполняется не как скрипт, а предварительно компилируется в байт-код. Такая практика сейчас стала широко распространена. Также JS является объектным языком, хотя поддержка ООП в нем весьма специфична.

Наиболее часто JS применяется в качестве клиентского языка для работы в браузерах. Однако он является языком общего назначения и вполне может выполнять различные задачи на серверах7 или desktop-системах.

Типы данных

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

Как и во многих языках в JS присутствует традиционный набор типов: числа (Number), логические значения (Boolean) и строки (String). В скобках указаны соответствующие им классы (ведь JS – объектный язык).

Также существует два тривиальных (имеющих в своем наборе только одно значение) типа: null, обозначающий отсутствие объекта и undefined — неопределенное значение, которое присваивается еще не инициализированной переменной.

Для создания собственных объектов существует тип Object. Он по традиции является корнем любой иерархии объектов. Для создания объекта можно использовать как конструктор, так и литерал. Ниже приведено два эквивалентных примера.

var x = new Object(); x.val = 3;

var x = { val:3 };

Для работы с массивами существует класс Array. Массив может содержать любые элементы, хотя, по сути, он содержит только объекты. Также как и объекты, массивы можно создавать при помощи конструкторов или литералов.

var a = new Array(); a[0] = 1.6; a[1] = { x:1, y:2 };

var a = [1.6, {x:1, y:2} ];

Кроме того, функции в JS также являются объектами класса Function. Для описания функции можно пользоваться как привычным синтаксисом, так и конструкторами или литералами. Ниже приводятся три эквивалентных примера.

function sqr(x) { return x*x; }

var sqr = function(x) {return x*x; }

var sqr = new Function( “x”, “return x*x;”);

Переменные

Для объявления переменных существует ключевое слово var. Если значение при объявлении не указывается (переменная не инициализируется), оно автоматически устанавливается в undefined.

var x = 1;

var y; // Значение undefined

Тип переменной определяется автоматически и изменяется при необходимости.

Можно пропускать объявление переменной. В этом случае она объявляется авто­матически во время записи в нее значение.

Еще одна особенность — инициализация переменных. Например, попробуйте запустить на выполнение следующий скрипт.

var x = "Global";

function f()

{

alert(x);

var x = "Local";

alert(x);

}

f();

Вместо возможно ожидаемого результата первая инструкция выведет “undefined”. Что произошло? Несмотря на то, что объявление переменной записано после первого вызова alert, фактически переменная x объявляется в начале функции и перекрывает собой глобальную переменную. Но значение “Local” ей присваивается только после первого вызова alert. Такое поведение может оказаться неожиданным, поэтому рекомендуется поэкспериментировать с данным кодом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]