JavaScript
Язык JavaScript представляет собой классический язык программирования, по синтаксису во многом подобный Си и включающий в себя ряд операторов, реализующих большинство типовых алгоритмических конструкций: условный оператор, циклы While и For и др., в дополнение к которым предусмотрено большое количество стандартных методов. Все это позволяет реализовывать желаемые интерактивные действия в достаточно широких пределах возможностей.
Обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Семантика и синтаксис Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу. все идентификаторы регистрозависимы, в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры, названия переменных не могут начинаться с цифры, для оформления однострочных комментариев используются //, многострочные и внутри строчные комментарии начинаются с /* и заканчиваются */.
Возможности JavaScript JavaScript обладает рядом свойств объектно- ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. JavaScript имеет ряд свойств, присущих функциональным языкам функции как объекты первого класса, объекты как списки, картинг, анонимные функции, замыкания что придаёт языку дополнительную гибкость.
В языке отсутствуют некоторые полезные вещи: модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости; стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных; стандартные интерфейсы к веб-серверам и базам данных; система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.
События События и обработчики событий являются очень важной частью для программирования на языке JavaScript. События, главным образом, инициируются теми или иными действиями пользователя. Если он щелкает по некоторой кнопке, происходит событие "Click". Если указатель мыши пересекает какую-либо ссылку гипертекста - происходит событие MouseOver. Существует несколько различных типов событий. Можно заставить JavaScript-программу реагировать на некоторые из них. И это может быть выполнено с помощью специальных программ обработки событий.
onChange onChange (Обработчик события) Событие происходит в тот момент, когда значение элемента формы select, text или textarea изменилось и элемент потерял фокус. Применение: Этот обработчик особенно полезен для проверки корректности ввода данных пользователем.
onClick onClick (Обработчик события) Вызывается после щелчка левой кнопкой мыши на объекте. onLoad onLoad (Обработчик события) Вызывается, когда загрузка документа в окно или в кадр закончена.
onMouseOver onMouseOver (Обработчик события) Событие происходит, когда указатель мыши помещается над гиперссылкой. onSubmit onSubmit (Обработчик события) Событие происходит в момент щелчка мышью на кнопке Submit для посылки данных формы на сервер.
onUnload onUnload(Обработчик события) Вызывается, когда пользователь выходит из документа.
Функции В большинстве программ на языке JavaScript используются функции. В большинстве случаев функции представляют собой лишь способ связать вместе нескольких команд.
В этом скрипте мы определили некую функцию, состоящую из следующих строк: 1. function myFunction() 2.{ 3. document.write("Добро пожаловать на мою страницу! "); 4. document.write("Это JavaScript! "); 5.} Все команды скрипта, что находятся внутри фигурных скобок - {} - принадлежат функции myFunction (). Это означает, что обе команды document.write() теперь связаны воедино и могут быть выполнены при вызове указанной функции.
Методы Имеется возможность управлять самим процессом создания окна. Например, Вы можете указать, должно ли новое окно иметь строку статуса, панель инструментов или меню.
Alert alert (Метод) Выводит на экран диалоговое окно JavaScript Alert с кнопкой ОК и определенным программистом сообщением. Back back (Метод) Вызывает переход к предыдущему URL из списка просмотренных в текущей сессии работы с браузером документов.
Big big (Метод) Форматирует строковый объект более крупным шрифтом. Click click (Метод) Эмулирует щелчок на объекте левой кнопкой мыши.
Close close (Метод) Для объекта document закрывает текущий поток вывода и показывает содержимое документа на экране. Для объекта window закрывает текущее окно. document.close(); window.close(); Confirm confirm (Метод) Выводит диалоговое окно JavaScript Confirm. window.confirm();
Go go (Метод) Загружает документ из списка страниц, посещенных за текущий сеанс работы браузера Open open (Метод) Создает новый документ или экземпляр окна. document.open("index.htm", "demo", "width=400,height=300,status=no,toolbar=no,m enubar=no" )
Объекты history (Объект) Список ранее просмотренных страниц, аналогично пункту меню Go браузера. Location location (Объект) Полная информация об URL текущего документа. Применение: Объект location используется для определения URL любого активного документа, включая документы в других окнах или в кадрах навигатора.
String string (Объект) Последовательность символов, ограниченная одинарными или двойными кавычками. stringName Window window (Объект) Наивысший объект в иерархии JavaScript, представляющий собой открытое окно браузера.
Свойства href (Свойство) Возвращает строку, содержащую полный URL текущего документа. Name name (Свойство) Возвращает строку со значением атрибута name объекта.
Расположение JavaScript Внутри страницы. Внутри тега. Отдельно от разметки. В отдельном файле.
JavaScript внутри страницы Для добавления JavaScript-кода на страницу, можно использовать теги. Скрипт, выводящий модальное окно с классической надписью «Hello, World!» внутри браузера: alert('Hello, World!');
Типы данных (константы и переменные 1. Числовой тип данных: целые числа, (integer) числа с плавающей точкой (float) 2. Булевский (логический) тип (Boolean); 3. Символьный тип данных (String); 4. Нулевой тип (Null)
Переменные в JavaScript Переменные в Javascript не нуждаются в типизации. Объявление переменной можно совместить с присвоением ей начального значения. Т.к. отсутствуют определения типов, в программе на JavaScript одна и та же переменная может изменять свой тип
Массивы Массивы представляют собой наборы данных одного типа в памяти компьютера Для обращения к элементу массива используется операция индексации. Для объявления массива используются квадратные скобки, внутри которых через запятую перечисляются его элементы Var a;a=[3, 5, 8]; В отличие от обычных, статических, массивов, массивы в JavaScript динамические, т.е. его размер и содержимое можно изменять в процессе выполнения программы. Var c;c=[2, 7,, 9];c[5]=11;
Массивы в JavaScript можно создавать как объекты. var имя массива = new Array(кол_во элементов); var имя массива = new Array(элементы массива); a=new Array(); b=new Array (2,41,3.14,als,22); Конструктор Array автоматически определяет свойство length – количество элементов массива. a.length==0;b.length==4
Вычислительные операции Операция Описание + Сложение (для числовых значений) или конкатенация (для строковых значений) - Вычитание либо смена знака («унарный минус») * Умножение / Деление % Остаток от деления ++ Инкремент (увеличение значения переменной на 1, пример:b=а++; х++ вместо х=х++ или х+=1) -- Декремент (уменьшение значения переменной на 1, пример: b=а--; х-- вместо х=х-- или х-=1)
Операции сравнения Символ операции Сравнение ПримерЗначение < Меньше a< btrue > Больше 7>9false <= Меньше или равно g<=gatrue >= Больше или равно 6>=5true = равно 2==3false ! = Не равно 2.1!=2true
Логические операции Операция Описание ! Логическое отрицание (для логических переменных, пример: если a=true, то !a=false) & Логическое условие И | Логическое условие ИЛИ ? Выбор по условию
В JavaScript существуют побитовые операции, которые выполняются только над двоичными числами: ~ Побитовое дополнение (отрицание) замена всех нулевых битов единичными и наоборот & Побитовое И | Побитовое ИЛИ ^ Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (операция XOR) << Сдвиг на указанное во втором операнде число бит влево (освободившиеся биты заполняются нулями) >> Сдвиг на указанное во втором операнде число бит вправо (освободившиеся биты заполняются значением самого левого бита исходного числа) >>> Сдвиг на указанное во втором операнде число бит вправо (освободившиеся биты заполняются нулями)
приоритет операций Если в скрипте содержится некоторое математическое выражение, значение которого должен вычислить компьютер, то соответствующие операции выполняются в соответствии с указанной ниже последовательностью: 1. действия в круглых скобках; 2.инкремент, декремент; 3.отрицание, дополнение, унарный минус; 4.умножение, деление, остаток от деления; 5.сложение, вычитание; 6. побитовый сдвиг; 7.сравнение; 8. равенство, неравенство; 9. побитовые операции И, ИСКЛЮЧАЮЩЕЕ ИЛИ, ИЛИ; 10. логические операции И, ИЛИ; 11. выбор по условию; 12.присваивание.
основные операторы языка JavaScript Символ оператора Операция Примерзначение = Присваивание значения x=13.4 *= Умножение и присваивание x*=yx=x*y /= Деление и присваивание x/=yx=x/y %= Остаток и присваивание x%=yx=x%y += Сложение и присваивание x+=yx=x+y -= Вычитание и присваивание x-=yx=x-y
Оператор Описание Пример // и /*... */ Комментарии: // однострочные (конец текущей строки является концом комментария) и многострочные блоки for (исх.знач.; условие; модификация) {….} Цикл, где исх.значение оператор присваивания, указывающий имя цикловой переменной, условие логическое условие завершения цикла (цикл выполняется, пока значение условия, равно true), модификация оператор присваивания, определяющий изменение цикловой переменной на каждом шаге; в фигурных скобках записывается тело цикла for (x=1; x<10; x+=1) { … } перебор в цикле всех значений х от 1 до 9 с шагом 1
Оператор Описание Пример if (условие) { ветвь true } else { ветвь false } Условный оператор: если значение логического условия равно true, выполняется первый блок, если false второй (блок else может быть опущен, если он не нужен) if (a>b) {x=a} else {x=b} вычисление максимального из двух значений while (условие) {... } Цикл, выполняемый, пока значение условия равно true while (x<10) { x++ } перебор в цикле всех значений х от заданного (меньшего 10) до 9
Оператор Описание Пример break Прерывание выполнения цикла for или while с передачей управления первому оператору после закрывающей фигурной скобки цикла i=0; While (true) { Document.write (I, ); If (i==9) break; i++} continue Завершение текущего прохода цикла (управление передается на проверку условия выполнения цикла) Summ=0; For (i=1; i<=99; i++) { If (i%5==0) continue; Summ+=i} Document.write( сумма равна, summ);
Оператор Описание Пример Function имя (список параметров) {... } Описание пользовательской функции с заданным именем. Список параметров (они могут и отсутствовать, тогда записываются пустые скобки) должен соответствовать (по количеству и ( порядку записи) таковому в вызовах этой функции.... <SCRIPT LANGUAGE= JavaScript> function signal (str) { alert(str); if (str =="OK") { return true; } }
Оператор Описание Пример имя (список параметров); Вызов ранее объявленной функции пользователя. Должен быть вложен в тело описания другой функции или указывается после знака равенства в записи события. Список параметров (они могут и отсутствовать, тогда записываются пустые скобки) должен соответствовать (по количеству и порядку записи)таковому в описании этой функции.
Оператор Описание Пример return значение Указывает возвращаемое функцией значение var имя переменной Или var имя переменной = значение Описание переменной. Если переменная описана внутри тела описания какой-либо функции, то она является локальной (доступна только в данной функции), в противном случае глобальной (доступной в любой функции). Этот оператор необязателен, т. е. если новой переменной присваивается какое-то значение с помощью оператора присваивания, то это уже означает описание этой переменной <SCRIPT language=JavaScript > var X; var Y=10; function trace() { var Z=15;} переменные Х и Y (где Х не присвоено никакого значения) являются глобальными, Z локальной для функции trace
Оператор Описание Пример with (объект) {... } Специальный оператор, указывающий, что дальнейшие ссылки на свойства относятся к указанному объекту, если в операторах не указано иное. При вызове некоторых стандартных функций по своей сути это аналогично указанию имени библиотеки, в которую входят эти функции with (Math) { X=cos(a); Y=sin(a) ; } вызов математических функций, (являющихся в JavaScript свойствами объекта Math)
Область применения Веб-приложения – AJAX – Comet – Браузерные операционные системы Букмарклеты Пользовательские скрипты в браузере Серверные приложения Мобильные приложения Виджеты Прикладное программное обеспечение Манипуляция объектами приложений Офисные приложения – Microsoft Office – OpenOffice.org Обучение информатике
Веб-приложения JavaScript используется в клиентской части веб- приложений: клиент-серверных программ, в котором клиентом выступает браузер, а сервером веб-сервер, имеющих распределённую между сервером и клиентом логику. Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб- приложения являются межплатформенными сервисами.
Букмарклеты Букмарклет небольшая JavaScript- программа, оформленная как javascript: URL и сохраняемая как браузерная закладка. Букмарклеты используются как инструменты, придающие браузеру дополнительную функциональность.
Букмарклеты Изменение внешнего вида страницы (цвета, размер букв, и т. д.), Извлечение данных из страницы, например, все ссылки или все используемые изображения, Переход (для удобства обычно в новом окне) к результатам поиска выделенных на странице слов, Создание страницы более удобной для чтения (увеличить шрифт, убрать яркий фон и мигающие элементы) и взаимодействия (расширить поля ввода, подчеркнуть все ссылки), Помощь веб-разработчику показать имена стилей, классов, свойства элементов, произвести операции с cookie.
Серверные приложения Приложения, написанные на JavaScript, могут исполняться на серверах. Это обстоятельство используется для построения серверных приложений, позволяющих обрабатывать JavaScript на стороне сервера. JavaScript на стороне сервера используется в проектах Google. – Google Sites допускает подстройку с помощью JavaScript-сценариев, исполняемых движком Rhino.
Виджеты Виджет вспомогательная мини-программа, графический модуль которой размещается в рабочем пространстве соответствующей родительской программы, служащая для украшения рабочего пространства, развлечения, решения отдельных рабочих задач или быстрого получения информации из интернета без помощи веб- браузера. JavaScript используется как для реализации виджетов, так и для реализации движков виджетов. – В частности, при помощи JavaScript реализованы Apple Dashboard, Microsoft Gadgets, Yahoo!_Widgets, Google Gadgets, Klipfolio Dashboard.
Прикладное программное обеспечение JavaScript используется для написания прикладного ПО. – Одним из ярких примеров является Mozilla Firefox, 57% исходного кода которого написано на JavaScript (для сравнения, следующим языком программирования по объёму кодовой базы Firefox является C++, доля которого составляет 17%). – Google Chrome OS в качестве прикладного ПО использует веб-приложения. – В окружении рабочего стола GNOME имеется возможность создавать на JavaScript программы, оперирующие с библиотеками GNOME при помощи Gjs, Seed.