Скачать бесплатно книги - программирование.

Скачать бесплатно книги - программирование.


загрузка...






Программирование

Программирование

Книги, статьи, руководства и примеры

Автор: Дегтярев Михаил.

Язык программирования JavaScript (Ява Скрипт).

Язык программирования JavaScript является объектно-ориентированным языком сценариев, изначально разработанный Netscape Communications под названием LiveScript, но затем переименован в "JavaScript" и с учетом синтаксиса ближе этот язык ближе Java компании Sun Microsystems. JavaScript был позже стандартизированы ECMA под названием ECMAScript. Microsoft называет свои версии JScript.

Изменение названия LiveScript на JavaScript произошло примерно в то же время , когда компания Netscape включили поддержку технологии Java в браузере Netscape Navigator. Это изменение внесло много путаницы у умы обучающихся программированию для начинающих. Не существует никакой реальной связи между Java и JavaScript, их сходство начинается и заканчивается схожим синтаксисом и тем фактом, что оба языка широко используются в сети Интернет.

JavaScript является объектно-ориентированным языком сценариев, который взаимодействует через интерфейс называемый Document Object Model (DOM) с содержимым, может быть выполнен на стороне сервера (веб-серверов) и на стороне клиента в веб-браузере пользователя при просмотре веб-страниц. Многие веб-сайты используют JavaScript технологии на стороне клиента для создания мощных динамических веб-приложений в программировании для чайников. Он может использовать Unicode и может использоватьмощь и силу регулярных выражений (это было введено в версии 1.2 в Netscape Navigator 4 и Internet Explorer 4). JavaScript выражения, содержащиеся в виде строке можно выполнить с помощью функции EVAL.

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

JavaScript / ECMAScript поддерживается такими движками как:

Окружающая среда

<-! ... -> Комментарий разметки требуется для того, чтобы гарантировать, что код не отобразится в виде текста, в браузерах, которые не признают тега <script>. <script> теги в XHTM / XML-документах, однако, не будут работать, если закомментированы. Современные браузеры, которые поддерживают XHTML и XML, достаточнохорошо разработаны, чтобы признать <script>, так что в этих документах код остается без комментариев.

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

Элементы языка

Переменные

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

Структуры данных

Главным типом является структура данных в виде ассоциативного массива похожая на хэши на языке программирования Perl или словари Python, Postscript и Smalltalk.

Элементы могут быть доступны по номерам или ассоциативным названиям (если они были определены). Таким образом, следующие выражения могут все быть эквивалентны:

myArray[1],
myArray.north,
myArray["north"].

Объявление массивов

myArray = new Array(365);

Массивы реализованы так, что только определенные (имеющие не пустое значение) элементы будут использовать память, они "разряжают массивы". Если мы зададим множество myАггау [10] = "чего-то там" и myArray [57] = "что-то там еще ', то мы использовали место только для этих двух элементов.

Объекты

JavaScript имеет несколько видов встроенных объектов, а именно Object, Array, String, Number, Boolean, Function, Date and Math. Другие объекты принадлежат объектам DOM (окна, формы, ссылки и т.д.).

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

Пример: Создание объекта
// Функция-конструктор

function MyObject(attributeA, attributeB) {
  this.attributeA = attributeA
  this.attributeB = attributeB
}

// Создать объект
obj = new MyObject('red', 1000)


/ / Доступ к атрибуту объекта
alert(obj.attributeA)


/ / Доступ атрибут с ассоциативный обозначения массива
alert(obj["attributeA"])


Иерархия объектов может быть воспроизведена и в JavaScript. Например:


function Base()
{
  this.Override = _Override;
  this.BaseFunction = _BaseFunction;
  function _Override()
  {
    alert("Base::Override()");
  }
  function _BaseFunction()
  {
    alert("Base::BaseFunction()");
  }
}


function Derive()
{
   this.Override = _Override;
   function _Override()
   {
     alert("Derive::Override()");
   }
}
Derive.prototype = new Base();


d = new Derive();
d.Override();
d.BaseFunction();


В результате получим на экране:
Derive::Override()
Base::BaseFunction()


Управляющие инструкции

If ... else

  if (condition) {
     statements
  }
  [else {
     statements
  }]

Циклы
  while (condition) {
     statements
  }


Do ... while

  do {
     statements
  } while (condition);


For loop

  for ([initial-expression]; [condition]; [increment-expression]) {
     statements
  }

Цикл For ... in
Этот цикл проходит по всем свойствам объекта (или элемента в массиве)
  for (variable in object) {
     statement
  }



Оператор выбора
  switch (expression) {
     case label1 :
        statements;
        break;
     case label2 :
        statements;
        break;
     default :
        statements;
  }


Функции
Заключается тело функции в {тело может быть пустым}, а список аругментов указывается внутри () идущих после имени функции. Функции могут возвращать значение, после выполнения.

  function(arg1, arg2, arg3) {
     statements;
     return expression;
  }


В качестве примера разберем функцию, основанную на алгоритме поиска наибольшего общего делителя Евклида:


  function gcd(a, b) {
     while (a != b) { 
        if (a > b) {
           a = a - b;
        } else {
           b = b - a;
        }
     }
     return a;
  }


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

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

var myFunc1 = new Function("alert('Hello')");
var myFunc2 = myFunc1;
myFunc2();


результат на экране:

"Hello"

Взаимодействие с пользователем

Большинство взаимодействие с пользователем осуществляется с помощью HTML-форм, которые могут быть доступны через HTML DOM. Однако Есть также некоторые очень простые средства общения с пользователем:

Оповещение диалоговом окне
Подтвердите диалоговое окно
Строки диалогового окна
Строка состояния
Консоли

События

Текстовые элементы могут быть источником различных событий, которые могут вызвать действия, если обработчик события EMCAScript зарегистрирован. В HTML эти функции обработчика событий часто определяется как анонимные функции непосредственно в тегах HTML.

Список событий:

Обработка ошибок

Новые версии JavaScript включают try ... catch обработки ошибок.

try {
// объявляем блок, в котором исключения могут быть пойманы
} catch (error) {
// блок, который выполняется в случае появления ошибки
} finally
// блок, который выполняют в любом случае
}


Если возник вопрос, то вы можете получить ответ: форум программистов