Материал: Лекція 1 Теоритичні відомості javaScript

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Теоретические сведения.

Как и все, что связано с Web, новая технология JavaScript гораздо моложе Java. JavaScript сначала был разработан компанией Netscape, поэтому его первое имя - LiveScript. Ожидалось, что этот язык сценариев расширит возможности HTML и выступит в качестве частичной альтернативы большому числу CGI-сценариев, будет перерабатывать информацию из формы и добавлять динамику в пользовательские страницы. После выхода Java компания Netscape начала работать вместе с компанией Sun над созданием языка сценариев, чей синтаксис и семантика по плану должны были тесно связываться с Java. Отсюда возникло и название JavaScript. В результате совместных усилий Netscape и Sun и был создан этот язык.

Одна из причин, послуживших созданию JavaScript, была связана с потребностью в присутствии логики и интеллекта не только со стороны сервера, но и клиента. Без JavaScript все выполнение переходит к серверу, причем даже такие простые операции, как проверка допустимости данных. Фактически, при отсутствии логики на стороне клиента Web-среда превращается в устаревшую хост-терминальную архитектуру, вытесненную революцией ПК в 80-х годах. Внедрение логики в браузере существенно усилило клиента и превратило отношение в истинную клиент-серверную систему.

С момента своего появления (декабрь 1995 г.) язык JavaScript имел существенную поддержку в лице ведущих производителей, в числе которых Apple, Borland, Sybase, Informix, Oracle. Digital, HP и IBM. JavaScript продолжает развиваться, внедряясь не только в современные браузеры, но и в приложения, созданные различными компаниями.

Немного позже, понимая всю важность создания Web-сценариев, Microsoft решила поддержать JavaScript. Однако компания Netscape предпочла передать Microsoft лишь только лицензию на право использования технологии. На основе общедоступной документации в Microsoft был создан "перепроектированый" JavaScript - JScript, поддерживаемый Internet Explorer 3.0 и выше. JScript 1.0 плохо совместим с JavaScript 1.1, используемым Netscape Navigator 3.0 и более поздними браузерами. В конечном итоге множество версий и различных хитростей, характерных для того или иного браузера, стали причиной головной боли для разработчиков Web-сайтов, использующих JavaScript.

К счастью, огорченные разработчики сценариев смогли вздохнуть свободно. Компании Netscape, Microsoft и другие производители решили подогнать язык под стандарты ЕСМА (European Computer Manufactureres Association). В тот период ЕСМА составила спецификацию языка - ECMAScript, что поддержали все производители. Хотя стандарты ЕСМА оказывают существенную помощь, все же компании Netscape и Microsoft продолжают развивать языки JavaScript и JScript, выходя при этом за пределы стандартов.

Помимо JScript, еще одним конкурентом JavaScript является VBScript, созданный с целью упрощения Web-разработок на Visual Basic (VB). VBScript является подмножеством языка Visual Basic. Из-за отсутствия поддержки со стороны Netscape, VBScript используется для интрасетей. Он пользуется большой популярностью у пользователей Microsoft Internet Explorer.

Несмотря на появление VBScript, JavaScript стал стандартным языком сценариев для Web. JavaScript часто применяется при создании инструментов для разработки Web-страниц.

Синтаксис JavaScript Правила написания скрипта.

Ниже перечислены правила написания скриптов применительно к языку JavaScript, соблюдение которых гарантирует корректность работы программ.

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

  • Для разделения операторов используется разделитель ";"

  • При задании блока операторов используют фигурные скобки "{}"

  • Присвоение значений производится с помощью оператора присвоения "="

  • Однострочный коментарий ставится с помощью символов "//", многострочный - "/* */"

/* Пример кода написаного на JavaScript */ var myVariable; // Объявление переменной

myVariable = 0; // Присвоение значания for (count=1; count<10; count++) // Задание цикла

{

myVariable=myVariable+count;//Суммирование чисел от 1до10

}

alert(myVariable);//Вывод значения переменной myVariable в диалоговом окне

Где нужно писать скрипт.

Скрипт размещают между открывающим и закрывающим элементами <script>. Таких пар открывающих и закрывающих тегов в документе может быть множество, и вних располагается код JavaScript. Чаще всего код, который содержит функции, располагают в разделе <head>, а код который должен выполняться в процессе загрузки страницы - в <body>. Для настройки раздела <script> используются следующие атрибуты:

  • language - устаревший атрибут, использовавшийся для указания языка скрипта. Для JavaScript присваивается значение "javascript"

  • type - новый атрибут, использующийся для указания языка скрипта. Для JavaScript присваивается значение "text/javascript"

  • src - атрибут, который указывает на внешний файл со скриптами

Есть возможность писать скрипты во внешнем файле и связать этот файл с файлом html-документа через элемент <script> и его атрибут src. Файл, который содержит скрипты JavaScript должен иметь расширение .js . Внутри файла элемент <script> не ставится, а скрипт пишется сразу сначала файла.

<html>

<head>

<title>

Использование встроеного скрипта

</title>

</head>

<body>

<script type="text/javascript">

var s = "JavaScript - это просто!";

alert(s);

</script>

</body>

</html>

Файл index.html

Файл script.js

<html> <head> <title> Использование скрипта размещенного во внешнем файле </title> </head> <body> <script type="text/javascript" src="./script.js">

</script>

</body> </html>

var s="JavaScript-это просто!"; alert(s);

Эти два примера содержат код скрипта, который выводит в диалоговом окне сообщение. Различие в них состоит в том, что в первом html-документе скрипт размещен в разделе <body>, а во втором - скрипт находится во внешнем файле (предусматривается что js-файл находится в той же папке что и html-файл)

На даный момент еще есть броузеры не поддерживающие скриптов, и весь код скрипта в них выводится на экран в виде текста. Чтобы этого не происходило рекомендуется весь код скрипта размещать между коментариями HTML - "<!-- //-->". Броузеры, которые понимают скрипт, коментарии просто игнорируют.

<html>

<head>

<title>

Использование встроеного скрипта

</title>

</head>

<body>

<script type="text/javascript">

<!--

Здесь пишеться скрипт

//-->

</script>

</body>

</html>

Переменные, их типы. Объявление переменной.

JavaScript не является строго типизированным языком программирования - переменные не имеют четко фиксированного типа. Тип любой переменной совпадает с типом значения, присвоенного этой переменной. Тип переменной может меняться на протяжении работы скрипта (но этого желательно избегать).

Объявлять переменные в JavaScript не обязательно, хотя хороший стиль программирования предписывает объявлять все переменные, которые Вы собираетесь использовать. Для объявления переменных используется оператор var

var a; // Объявление переменной без присвоения значения

var a = 25;//Объявление переменной с присвоением ей значения (инициализация)

var a, b, c; // Объявление нескольких переменных

var a = 1, b = "JavaScript", c = 5.6; // Объявление нескольких переменных с присвоением им значений

Если переменная объявлена, но ей не присвоено значение, то по умолчанию она имеет значение - undefined. Может возникнуть ситуация, когда Вам потребуется объявить переменную и инициализировать ее, но Вы не хотите, чтобы эта переменная содержала какое-то конкретное значение. Для этого можно присвоить этой переменной значение null

var x; // Переменная х имеет значение undefined

var x = null; // Переменная х имеет значение null

Имена переменных могут быть любой длины, и должны начинаться с буквы, символа подчеркивания (_) или символа ($). Последующие символы могут бытьбуквами, цифрми, символами подчеркивания или символами ($).

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

Типы данных.

Данные, которые могут храниться в переменных, подразделяются на несколько типов:

  • Строки

  • Числа

  • Логические(булевы) данные

  • Объекты

Строка представляет собой последовательность символов, заключенную в одинарные(') или двойные (") кавычки. Переменной можно присвоить исходное значение '' или "", строки нулевой длины.Важно отметить, что строка является объектом (объекты будут рассматриваться в следующих уроках). Если в одной строке необходимо разместить другую (вложенную) строку, то при этом используют другой тип кавычек. Конкатенация строк (объединение) производится знаком "+".

var s = "Строка";

var s = 'Это тоже строка';

var s = ""; // Строка нулевой длины

var s = "Строка 'Вложенная строка' текста";

var s = "Строка1" + "Строка2" // Объединение строк

var s = "Строка "Вложенная строка" текста"; // Это неправильная запись - вызовет ошибку

Числа делятся на несколько подтипов:

  • Целые

  • Вещественные

  • Восьмиричные

  • Шестнадцатиричные

Для записи вещественных чисел используется знак "точка" (.) или/и используется знак e. Восьмиричные числа начинаются с цифры 0 и содержат цифры от 0 до 7. Шестнадцатиричные числа начинаются с символов: 0x или 0X и содержат знаки: 0..9,a..f.

var i = 39; //Целое десятично число 39

var i = 0.39e2; //Число 39

var i = -6787.2763; //Число -6787.2763

var i = 0372; //Восьмиричное число 372

var i = 0x55f2; //Шестнадцатиричное число 55f2

Логический тип имеет всего два значения: true(правда) и false(ложь). false соответствует числу 0, все остальные значения при использовании в выражениях эквивалентны значению true.

var flag=true;//Переменная flag имеет значение true (правда)

var flag=false;//Переменная flag имеет значение false (ложь)

Работа с объектными типами будет рассмотрена на следующих занятиях.

Операции над данными

Ниже в таблицах перечисленны все операции, которые можно проводить над даными в JavaScript. В основном они должны быть Вам знакомы из курса C++, поэтому приводится лишь их краткая характеристика.

Таблица 1. Операции присваивания.

=

Присваивание

Прямое присваивание (значение правого операнда присваивается левому)

+=

Присваивание со сложением

Левому операнду присваивается сумма левого и правого операндов

-=

Присваивание с вычитанием

Вычитает левый операнд из правого и присваивает результат левому

*=

Присваивание с умножением

Левому операнду присваивается произведние левого и правого операндов

/=

Присваивание с делением

Делит левый операнд на правый и присваивает результат левому операнду

%=

Присваивание с остатком от деления

Делит левый операнд на правый и присваивает остаток от деления левому операнду

<<=

Присваивание с побитовым сдвигом влево

Производит побитовое смещение для левого операнда влево на количество бит, заданых правым операндом, и присваивает результат левому операнду

>>=

Присваивание с побитовым сдвигом вправо

Производит побитовое смещение для левого операнда вправо на количество бит, заданых правым операндом, и присваивает результат левому операнду

>>>=

Присваивание с полным побитовым сдвигом вправо

Производит побитовое смещение для левого операнда влево на количество бит, заданых правым операндом, со сдвигом нулей влево и присваивает результат левому операнду

&=

Присваивание с побитовым сравнением AND

Производит операцию "побитовое И" (&), и присваивает результат левому операнду

^=

Присваивание с побитовым сравнением XOR

Производит операцию "побитовое ИЛИ" (^), и присваивает результат левому операнду

|=

Присваивание с побитовым сравнением OR

Производит операцию "побитовое включающее ИЛИ" (|), и присваивает результат левому операнду

Таблица 2. Операции сравнения.

==

Равно

Возвращает истину (true), когда левый и правый операнды равны

!=

Не равно

Возвращает истину, когда левый и правый операнды не равны

===

Строго равно

Возвращает истину, когда левый и правый операнды равны и относятся к одному типу даных

!==

Строго не равно

Возвращает истину, когда левый и правый операнды не равны и(или) относятся к разным типу даных

>

Больше

Возвращает истину, когда левый операнд больше правого

<

Меньше

Возвращает истину, когда левый операнд меньше правого

>=

Больше или равно

Возвращает истину, когда левый больше правого или равен ему

<=

Меньше или равно

Возвращает истину, когда левый меньше правого или равен ему

Источник: https://studfile.net/preview/16420761/