Введение.

Добрый день!

Итак, если Вы скачали себе данное пособие, значить Вы полны решимости изучить язык Java Script. Ну что ж, в таком случае, попытаюсь Вам помочь в реализации своего желания. Я конечно не "..волшебник, а только учусь..", но объяснить основы языка, научить составлять небольшие скрипты - постараюсь.

Сначала давайте узнаем - что же собой представляет язык Java Script?
   Язык Java Script представляет собой объектно-ориентированый интерпретатор. Это значит, что он использует свойства и методы объектов Web-браузера установленного на Вашем компьютере. "Ооо!" - воскликнете Вы, "..понеслось, поехало - свойства, методы, объекты..". Ну что ж разберем это на простом примере. Например сейчас у Вас в окне браузера (здесь и далее говоря - браузер - я подразумеваю Интернет Эксплоеер (EI), это правда не столь существенно, но, как говориться - есть ньюансы...) открыта эта страничка. Так вот, само окно браузера (window) - является объектом, то что это окно открыто (open() ) - является методом для данного объекта (т.е. чтобы увидеть это окно - мы его открыли, если мы его закроем то это уже будет другой метод - close()...улавливаете?). А что Вы в этом окне видете? Правильно - страницу с текстом, другими словами - документ (document), вот этот документ и является свойством, открытого Вами, окна браузера (другими словами - то что мы видим в окне - и есть свойством этого окна). Вспомнили уроки грамматики по русскому языку ( существительное отвечает на вопрос - кто?, что?, глагол - что делает? и т.д.)? Но не все так просто... Дело в том, что этот документ (document) - тоже является объектом, так же имеющим свои методы и свои свойства...:-))). Ну что запутал Вас? :-))) Вот Вам объяснение - в Java Script имеется иерархия объектов, и объекты верхнего уровня наследуют свойства нижнего. А объект window является объектом верхнего уровня в клиентской иерархии JavaScript. Не растраивайтесь, если сразу не все поняли - это нормально, "Не сразу Москва строилась" :-))) Дальше мы все это рассмотрим более подробно.

Итак, мы остановились на том, что JavaScript является объектно-ориентированым интерпретатором.
Хотя он и лишен возможностей создания собственных классов (в отличие от языка JAVA), но он оперирует стандартными объектами. Так как обработчик находится на компьютере пользователя, Java Script использует методы и свойства объектов обозревателя на пользовательском компьютере.
   "Где размещать скрипты?" - вставлять Java Script можно в любом месте HTML-документа (но это правило не имеет обратного действия, т.е НТМL-теги нельзя вставлять в тело Java Script - программы, исключения составляют тоько обработчики событий), но лучше это делать между тегами <head>....</head>. Потому, что этот контейнер (содержимое меду открывающим тегом - <head> и закрывающим - </head>)загружается, в браузер пользователя, одним из первых.
   Само тело скрипта распологается в контейнере HTML - тегов:<script>....</script> (в случае если скрипт пишется в самом НТМL - документе). Тег <script> обязательно должен содержать параметр language, со значением равным JavaScript (обращаю Ваше внимание: JavaScript - пишется с соблюдением регистра!). Я бы, так же посоветовал Вам обрамлять его (тело скрипта) специальными символами: <!-- - перед началом скипта и //--> - в конце.
   Таким образом в документе Ваш срипт должен выглядеть приблизительно так:

<head>
.....
<script language="JavaScript">   - открывающий тег
<!--    - спецальный символ
document.write("Привет!");   - тело скрипта
............
//-->    - спецальный символ
</script>    - закрывающий тег
</head>

Встретив тег <script>, браузер построчно анализирует содержимое документа до тех пор, пока не будет достигнут тег </script>. После этого производится проверка скрипта на наличие ошибок и компилция Java Script программы в формат, пригодный для выполнения на компьютере пользователя.
   Вот мы с Вами уже и рассмотрели правила вставки скриптов в НТМL-документ.

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

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

Выражения

Простейший и наиболее точный способ определить выражение - это "что-то, имеющее значение". Самый простой пример, приходящий на ум это переменные. Когда Вы печатаете var a = 5, Вы присваиваете значение 5 переменной a. После этого присваивания Вы считаете значением a 5, также, если Вы напишете b = a, Вы будете ожидать того же как, если бы Вы написали b = 5. Другими словами, a это также выражение со значением 5. Если все написано правильно, то именно так оно и случиться.
   Несколько более сложные примеры выражений - это функции. К примеру, подумайте на следующей функцией :

function prim () {
return 5;
}

Вы считаете, что c=prim() это практически то же самое, что написать c=5? Вы правы. Функции - это выражения с тем значением, которое они возвращают (обычно функции подсчитывают возвращаемое значение,а не возвращают постоянное значение, но это уже, как говорится, другая история).

Конечно, значения в JS не обязаны быть целыми и зачастую они не являются таковыми. JS поддерживает 3 скалярных типа значений : целое, число с плавающей точкой и строки (скалярные выражения Вы не можете "разбить" на более маленькие части, как, к примеру, массивы). JS поддерживает 2 составных (нескалярных) типа : массивы и объекты. Каждое из таких значений может быть присвоено переменной или возвращено функцией.

Очень распространенный тип выражений это выражения сравнения. Эти выражения имеют значение 0 или 1 (означает ложь или истину соответственно). JS поддерживает: > (больше, чем), >= ( больше или равно), == (равно), != (не равно),  < (меньше,чем), <=<= (меньше или равно) и логическое отрицание - !.
Получается приблизительно такая табличка:
      
= Равенство (равно)
!= Не равно
! Логическое отрицание
>= Больше или равно
<= Меньше или равно
> Больше
< Меньше
   По возможности желательно воздержаться от применения <, так как при встречи етого знака браузер может втемяшить в свою дурью голову, что открывается тег HTML :-( А как я уже говорил теги нельзя вставлять в JS!!



Эти выражения в основном используются внутри условий, например оператора IF.

Также в JS есть выражения (чаще их называют - операции), так называемые операции присваивания и логические операции.

(На верх)

Операции присваивания

Когда мы начинали рассматривать выражения, я приводил Вам пример:


var a = 5

вспомнили?Это и есть один из вариантов операции присваивания.
   Только не надо путать это выражение со знаком равенства! Присваивание значения происходит с права на лево, т.е. значение правого операнда-5 присваивается левому операнду - var a. Благодаря этому мы можем делать очень занятные вещи:

a=(b=4)+5;

В данном примере a принимает значение 9, а b - значение...правильно - 4!!!
   Вот вам табличка операций присваивания:

= Прямое присваивание значения левому операнду
+= Складывает значения левого и правого операндов и присваивает результат левому операнду
+ Складывает значения левого и правого операндов и присваивает результат левому операнду
++ Увеличивает значение левого операнда (правый может отсутствовать)
-= Вычитает значения левого и правого операндов и присваивает результат левому операнду
- Вычитает значения левого и правого операндов и присваивает результат левому операнду
-- Уменьшает значение левого операнда (правый может отсутствовать)
* Умножает значения левого и правого операндов и присваивает результат левому операнду
*= Умножает значения левого и правого операндов и присваивает результат левому операнду
/ Делит значения левого на правого операндов и присваивает результат левому операнду
/= Делит значения левого на правого операндов и присваивает результат левому операнду

Вот небольшой примерчик:

var a=12
a=(a /=2)/3;

В результате: выражение - a/=2 дало нам значение 6, а последняя операция присваивания дала нам переменную а со значением 2

(На верх)

Логические выражения

Для обозначения логической операции И в языке JS используют два символа амперсанта (&&), а для обозначения логической операции ИЛИ - два символа прямой черты (||). Эти операции применимы только к булевым значеним.
    Например:


a = true;
b = false;
c = true;
можно записать выражение:
a || b
которое возвратит значение true, так, как для данного выражения достаточно того, чтобы значение одного из операндов было true. А вот выражение:
a && b
возвратит соответственно false так, как отрабатывается операция логического И.
(На верх)

На этом мы пожалуй закончим рассмотрение выражений и операций и перейдем к операторам языка JS.