Опубликован: 05.08.2010 | Уровень: для всех | Доступ: платный
Лекция 6:

Введение в язык программирования JavaScript

Аннотация: В лекции слушатели познакомятся с одним из самых распространенных скриптовых языков - JavaScript, рассмотрят области применения языка, его достоинства и недостатки. Будут показаны варианты размещения кода, рассказано об интеграции JavaScript с другими технологиями.

Презентацию к данной лекции Вы можете скачать здесь.

JavaScript - объектно-ориентированный скриптовый язык программирования. Чаще всего применяется в браузерах для создания сценариев. Сценарии придают веб-страницам интерактивность. Синтаксически язык похож на Си и Java. JavaScript чувствителен к регистру.

Структурно JavaScript состоит из трех частей:

  1. ядро ( ECMAScript ),
  2. объектная модель браузера ( Browser Object Model или BOM),
  3. объектная модель документа ( Document Object Model или DOM).

Ядро

Ядром JavaScript является спецификация ECMAScript, описывающая типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения.

Объектная модель браузера

Каждое из окон браузера представляется объектом window. Браузеры управляют окнами, фреймами, адресом открытой страницы, поддерживают работу с cookie.

Объектная модель документа

Объектная модель документа - интерфейс программирования приложений для HTML и XML-документов. Согласно DOM документу можно поставить в соответствие дерево объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции.

JavaScript сценарии можно запускать несколькими способами:

Пример 1. Встраивание кода JavaScript в web-страницы

Для добавления JavaScript-кода на страницу, можно использовать теги <script></script>. В качестве примера приведем программу, выводящую на экран модальное окно с надписью "Здравствуй, Мир!" ().

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
<script type="text/javascript">
        alert('Здраствуй, Мир!');
</script>
</head>
<body>
</body>
</html>

Рис. 7.1.

Пример 2. Расположение кода JavaScript внутри HTML-тега

В предлагаемом примере JavaScript-код интегрирован в HTML-код ссылки ().

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
</head>
<body>
<a href="order.aspx" onclick="return confirm('Подтвердите ввод?');">Заказать товар</a>
</body>
</html>

Рис. 7.2.

Пример 3. Создание обработчика события

Использование JavaScript- кода в контексте разметки страницы считается не очень удачной практикой. Более предпочтительным для решения этой же задачи является следующий код ():

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title> Пример 3. Создание обработчика события</title>
    <script type="text/vbscript">
    window.onload = function() {
    var myLink = document.getElementById("orderLink");
    myLink.onclick = function() {
        return confirm('Вы уверены?');
    };
};
    </script>
</head>
<body>
<a href="order.aspx" id="orderLink">заказать товар</a>
</body>
</html>

Рис. 7.3.

Пример 4. Вынесение JavaScript-кода в отдельный файл

Есть еще одна возможность подключения JavaScript - написать скрипт в отдельном файле, а потом подключить его с помощью конструкции:

<script type="text/javascript" src = "http://Путь к файлу со скриптом"> </script>

Создадим файл со следующим содержимым:

var sentense;
sentense = "Иссушают науки и тело, и ум," + "<br>" +
                 "Муж ученый поэтому худ и угрюм." + "<br>" + 
                "Не отведав до срока лозы винограда," + "<br>" +
                 "Он до времени сам превратился в изюм";
document.write(sentense);

Затем создадим web-страничку со следующим кодом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Вынесение JavaScript-кода в отдельный файл</title>
    <script type="text/javascript" src="myscript.js"></script>
</head>
<body>

</body>
</html>

Рис. 7.4.

Области применения языка программирования JavaScript

Web-приложения

JavaScript используется в клиентской части web-приложений, при этом клиенты не зависят от конкретной операционной системы пользователя.

AJAX

JavaScript используется в AJAX, когда web-страница не перезагружается полностью при обновлении данных и интерфейс web-приложения становится быстрее, чем при традиционном подходе. В качестве примера можно привести Gmail, некоторые картографические сервисы.

Comet

Comet - механизм работы веб-приложений, использующих постоянные HTTP-соединения, когда web-сервер отправляет данные браузеру без дополнительного запроса со стороны браузера.

Браузерные операционные системы

Исходный код IndraDesktop WebOS на 73 % состоит из JavaScript, код браузерной операционной системы IntOS написан на JavaScript на 70 %. Доля JavaScript в исходном коде eyeOS - 21 %.

Букмарклеты

JavaScript используется для создания небольших программ, размещаемых в закладки браузера. При этом используются URL-адреса со спецификатором javascript.

Пользовательские скрипты в браузере

Пользовательские скрипты в браузере - это программы, позволяющие автоматически заполнять формы, переформатировать страницы, скрывать нежелательное содержимого и встраивать желательное для отображения содержимое, изменять поведение клиентской части веб-приложений, добавлять элементы управления на страницу и т. д.

Серверные приложения

JavaScript на стороне сервера используется в проектах Google.

Мобильные приложения

JavaScript использовался при разработке операционной системы Palm webOS.

Виджеты

Виджет - вспомогательная программа, использующаяся для украшения рабочего стола или быстрого получения информации из интернета без помощи web-браузера. При помощи JavaScript созданы Apple Dashboard, Microsoft Gadgets, Yahoo!_Widgets, Google Desktop Gadgets и Klipfolio Dashboard.

Прикладное программное обеспечение

57 % исходного кода Mozilla Firefox написано на JavaScript.

Манипуляция объектами приложений

Сценарии JavaScript поддерживаются в таких приложениях Adobe, как Adobe Photoshop, Adobe Dreamweaver, Adobe Illustrator и Adobe InDesign.

Офисные приложения

JavaScript используется в офисных приложениях для автоматизации рутинных действий, написания макросов и организации доступа со стороны веб-служб.

Microsoft Office

В Excel Services 2010 добавлен интерфейс JavaScript Object Model (JSOM). JSOM даёт возможность реагировать на действия пользователя в отношении Excel Web Access (EWA), программно взаимодействовать с составляющими EWA. Использование JSOM осуществляется при помощи помещения кода JavaScript на страницу, содержащую компоненты EWA.

OpenOffice.org

JavaScript использовался для написания макросов в приложениях, входящих в состав OpenOffice.org.

Краткие итоги

Язык программирования JavaScript состоит из трех частей: ядра, объектной модели браузера и объектной модель документа. Язык имеет Си-подобный синтаксис, но, в отличие от Си - слабую типизацию. Слабая типизация может вызвать проблемы при автоматическом преобразовании типов переменных. JavaScript - объектно-ориентированный язык, но функции ООП выражены относительно слабо. Код JavaScript можно размещать как на самой web-странице, так и в отдельном файле. JavaScript очень широко применяется при разработке web-приложения. Прежде всего это относится к клиентским web-приложениям, на JavaScript основана технология асинхронного обмена данных с web-сервером AJAX, существенная часть кода некоторых браузерных ОС также написана на JavaScript. JavaScript хорошо подходит для интеграции с различными офисными продуктами, например, в Excel Services 2010 добавлен интерфейс JavaScript Object Model (JSOM).

Набор для практики

Вопросы:

  1. Из каких частей состоит JavaScript?
  2. Назовите сильные и слабые стороны языка
  3. Что общего между JavaScript и C++?
  4. Где может размещаться JavaScript-код?
  5. Что такое "песочница"?
  6. Что такое ECMAScript?

Упражнения:

  1. Подготовьте сообщение об угрозах для информационных систем, связанных с JavaScript
  2. Что такое межсайтовый скриптинг?
  3. Подготовьте сообщение об объектно-ориентированных свойствах JavaScript
Чуадум Шапда
Чуадум Шапда
Россия, Санкт Петербург
Юрий Сысков
Юрий Сысков
Россия, Снежинск, СГФТА, 2005