Òåìà: JavaScript

1.ßçûê ïðîãðàììèðîâàíèÿ JavaScript: îáëàñòè èñïîëüçîâàíèÿ, îñíîâíûå îáëàñòè èñïîëüçîâàíèÿ, îïåðàöèè.

2.Ðàçìåùåíèå  javascript-êîäà

3.JavaScript îáðàáîò÷èêè ñîáûòèé.

4.Ôóíêöèè â JavaScript.

5.Âåòâëåíèÿ â JavaScript.

6.Öèêëû â JavaScript.

 

1. ßçûê ïðîãðàììèðîâàíèÿ JavaScript: îáëàñòè èñïîëüçîâàíèÿ, îñíîâíûå îáëàñòè èñïîëüçîâàíèÿ, îïåðàöèè.

 

ßçûê ïðîãðàììèðîâàíèÿ JavaScript áûë ðàçðàáîòàí ôèðìîé Netscape â ñîòðóäíè÷åñòâå ñ Sun Microsystems è àíàíñèðîâàí â 1995 ãîäó. JavaScript ïðåäíàçíà÷åí äëÿ ñîçäàíèÿ èíòåðàêòèâíûõ html-äîêóìåíòîâ. Îñíîâíûå îáëàñòè èñïîëüçîâàíèÿ JavaScript:

-       Ñîçäàíèå äèíàìè÷åñêèõ ñòðàíèö, ò.å. ñòðàíèö, ñîäåðæèìîå êîòîðûõ ìîæåò ìåíÿòüñÿ ïîñëå çàãðóçêè.

-       Ïðîâåðêà ïðàâèëüíîñòè çàïîëíåíèÿ ïîëüçîâàòåëüñêèõ ôîðì.

-       Ðåøåíèå "ëîêàëüíûõ" çàäà÷ ñ ïîìîùüþ ñöåíàðèåâ.

-       JavaScript-êîä - îñíîâà áîëüøèíñòâà Ajax-ïðèëîæåíèé.

Ïðîãðàììû (ñöåíàðèè) íà ýòîì ÿçûêå îáðàáàòûâàþòñÿ âñòðîåííûì â áðàóçåð èíòåðïðåòàòîðîì. Ê ñîæàëåíèþ, íå âñå ñöåíàðèè âûïîëíÿþòñÿ êîððåêòíî âî âñåõ áðàóçåðàõ, ïîýòîìó òåñòèðóéòå ñâîè javascript-ïðîãðàììû â ðàçëè÷íûõ áðàóçåðàõ.

JavaScript ïîçâîëÿåò ñîçäàâàòü ïðèëîæåíèÿ, âûïîëíÿåìûå íà ñòîðîíå êëèåíòà, ò.å. ýòè ïðèëîæåíèÿ âûïîëíÿþòñÿ áðàóçåðîì íà êîìïüþòåðå ïîëüçîâàòåëÿ. ßçûê JavaScript ðåãèñòðîçàâèñèìûé, ò.å. çàãëàâíûå è ïðîïèñíûå áóêâû àëôàâèòà ñ÷èòàþòñÿ ðàçíûìè ñèìâîëàìè.

Ïðåæäå, ÷åì ïðèñòóïèòü ê íàïèñàíèþ ñöåíàðèåâ, íåîáõîäèìî îçíàêîìèòüñÿ ñ îñíîâíûìè ïîíÿòèÿìè, òàêèìè êàê ëèòåðàëû, ïåðåìåííûå è âûðàæåíèÿ.

Ëèòåðàëû

Ëèòåðàëû - ýòî ïðîñòåéøèå äàííûå ñ êîòîðûìè ìîæåò ðàáîòàòü ïðîãðàììà.

Ëèòåðàëû öåëîãî òèïà - öåëûå ÷èñëà â ïðåäñòàâëåíèè:

-       äåñÿòè÷íîì, íàïðèìåð: 15, +5, -174.

-       øåñòíàäöàòåðè÷íîì, íàïðèìåð: 0õ25, 0õff. Øåñòíàäöàòåðè÷íûå ÷èñëà âêëþ÷àþò öèôðû 0 - 9 è áóêâû a, b, c, d, e, f. Çàïèñûâàþòñÿ îíè ñ ñèìâîëàìè 0õ ïåðåä ÷èñëîì.

 

-       âîñüìåðè÷íîì, íàïðèìåð: 011, 0543. Âîñüìåðè÷íûå ÷èñëà âêëþ÷àþò òîëüêî öèôðû 0 - 7.

 

Âåùåñòâåííûå ëèòåðàëû - äðîáíûå öèñëà. Öåëàÿ ÷àñòü îòäåëÿåòñÿ îò äðîáíîé òî÷êîé, íàïðèìåð: 99.15, -32.45. Âîçìîæíà ýêñïîíåíöèàëüíàÿ ôîðìà çàïèñè, íàïðèìåð: 2.73e-7.  ïðèâû÷íîì âèäå ýòî 2.73Õ10-7, íî â javascript çíàê óìíîæåíèÿ è 10 çàìåíÿþòñÿ ñèìâîëîì -e-.

Ëîãè÷åñêèå çíà÷åíèÿ - èç äâà: èñòèíà (true) è ëîæü (false).

Ñòðîêîâûå ëèòåðàëû - ïîñëåäîâàòåëüíîñòü ñèìâîëîâ, çàêëþ÷åííàÿ â îäèíàðíûå èëè äâîéíûå êàâû÷êè. Íàïðèìåð: "âàøå èìÿ", 'âàøå èìÿ'.

 

Ïåðåìåííûå

Ïåðåìåííûå èñïîëüçóþòñÿ äëÿ õðàíåíèÿ äàííûõ. Ïåðåìåííûå îïðåäåëÿþòñÿ ñ ïîìîùüþ îïåðàòîðà var, ïîñëå êîòîðîãî ñëåäóåò èìÿ ïåðåìåííîé. Èìÿ ïåðåìåííîé äîëæíî íà÷èíàòüñÿ ñ áóêâû ëàòèíñêîãî àëôàâèòà èëè ñ ñèìâîëà ïîä÷åðêèâàíèÿ. Ñàìî èìÿ ìîæåò âêëþ÷àòü áóêâû ëàòèíñêîãî àëôàâèòà, öèôðû è çíàê ïîä÷åðêèâàíèÿ.

 

Íàïðèìåð:

var test

var _test

var _my_test1

 

Êàæäîé ïåðåìåííîé ìîæíî ïðèñâîèòü çíà÷åíèå ëèáî ïðè åå èíèöèàëèçàöèè (îáúÿâëåíèè), ëèáî â êîäå ñàìîé ïðîãðàììû. Îïåðàòîð ïðèñâàèâàíèÿ îáîçíà÷àåòñÿ çíàêîì ðàâíî (=), íî çíàê ðàâåíñòâà çäåñü íå èìååò ñâîåãî ïðÿìîãî çíà÷åíèÿ.  äàííîì ñëó÷àå îí ëèøü óêàçûâàåò íà òî, ÷òî äàííîé ïåðåìåííîé ïðèñâîèëè çíà÷åíèå.

 

Íàïðèìåð:

var a=15

var b=23.15

var c='âûïîëíåíî'

var s=true

 

Êàæäàÿ ïåðåìåííàÿ èìååò òèï, îïðåäåëÿåìûé çíà÷åíèåì ïåðåìåííîé. Òàê â íàøåì ïðèìåðå: ïåðåìåííûå a è b èìåþò òèï number, ïåðåìåííàÿ c èìååò òèï string, à ïåðåìåííàÿ s - ëîãè÷åñêèé òèï.

 

Âûðàæåíèÿ

Âûðàæåíèÿ ñòðîÿòñÿ èç ëèòåðàëîâ, ïåðåìåííûõ, çíàêîâ îïåðàöèé è ñêîáîê.  ðåçóëüòàòå âû÷èñëåíèÿ âûðàæåíèÿ ïîëó÷àåòñÿ åäèíñòâåííîå çíà÷åíèå, êîòîðîå ìîæåò áûòü ÷èñëîì, ñòðîêîé èëè ëîãè÷åñêèì çíà÷åíèåì.

 

 âûðàæåíèè a*b, a è b íàçûâàþòñÿ îïåðàíäàìè, à * - çíàê îïåðàöèè.  JavaScript îïðåäåëåíû ñëåäóþùèå îïåðàöèè:

îïåðàöèÿ

íàçâàíèå

+

ñëîæåíèå

-

âû÷èòàíèå

*

óìíîæåíèå

/

äåëåíèå

%

îñòàòîê îò äåëåíèÿ öåëûõ ÷èñåë

++

óâåëè÷åíèå çíà÷åíèÿ îïåðàíäà íà åäèíèöó

--

óìåíüøåíèå çíà÷åíèÿ îïåðàíäà íà åäèíèöó

Îïåðàòîðû â âûðàæåíèè âû÷èñëÿþòñÿ ñëåâà íàïðàâî â ñîîòâåòñòâèè ñ ïðèîðèòåòàìè àðèôìåòè÷åñêèõ îïåðàöèé. Èçìåíèòü ïîðÿäîê âû÷èñëåíèÿ ìîæíî ñ ïîìîùüþ ñêîáîê.

Äëÿ êàæäîãî èç àðèôìåòè÷åñêèõ îïåðàòîðîâ åñòü ôîðìà, â êîòîðîé îäíîâðåìåííî ñ çàäàííîé îïåðàöèåé âûïîëíÿåòñÿ ïðèñâàèâàíèå:

îïåðàòîð

ýêâèâàëåíòíûé îïåðàòîð ïðèñâàèâàíèÿ

X+=Y

X=X+Y

X-=Y

X=X-Y

X*=Y

X=X*Y

X/=Y

X=X/Y

X%=Y

X=X%Y

 äàííîì ñëó÷àå ñíà÷àëà âû÷èñëÿåòñÿ ïðàâûé îïåðàíä, à çàòåì ïîëó÷åííîå çíà÷åíèå ïðèñâàèâàåòñÿ ëåâîìó îïåðàíäó.

Äëÿ òîãî, ÷òîáû ìîæíî áûëî ñðàâíèâàòü äâà çíà÷åíèÿ â javascript îïðåäåëåíû îïåðàöèè ñðàâíåíèÿ, ðåçóëüòàòîì êîòîðûõ ìîæåò áûòü òîëüêî ëîãè÷åñêîå çíà÷åíèå: true èëè false:

îïåðàöèÿ

íàçâàíèå

< 

ìåíüøå

<=

ìåíüøå èëè ðàâíî

==

ðàâíî

!=

íå ðàâíî

>=

áîëüøå èëè ðàâíî

> 

áîëüøå

 javascript îïðåäåëåíû ëîãè÷åñêèå îïåðàöèè:

&& - ëîãè÷åñêîå È (AND),

|| - ëîãè÷åñêîå ÈËÈ (OR),

! - ëîãè÷åñêîå ÍÅ (NOT).

Ðåçóëüòàòû âîçäåéñòâèÿ ëîãè÷åñêèõ îïåðàòîðîâ íà ðàçëè÷íûå êîìáèíàöèè çíà÷åíèé îïåðàíäîâ ïîêàçàíû â òàáëèöå:

A

B

A&&B

A||B

!A

true

true

true

true

false

true

false

false

true

false

false

true

false

true

true

false

false

false

false

true

Ïðîùå ãîâîðÿ, çíà÷åíèå âûðàæåíèÿ A&&B èñòèííî, åñëè èñòèííû îáà îïåðàòîðà, è ëîæíî â ïðîòèâíîì ñëó÷àå. Çíà÷åíèå âûðàæåíèÿ A||B èñòèííî, åñëè çíà÷åíèå õîòÿ áû îäíîãî îïåðàíäà èñòèííî, è ëîæíî â ïðîòèâíîì ñëó÷àå. Åñëè çíà÷åíèå îïåðàíäà À èñòèííî, òî !A - ëîæíî è íàîáîðîò.

Äëÿ ñòðîêîâûõ ëèòåðàëîâ îïðåäåëåíà îïåðàöèÿ êîíêàòåíàöèÿ ñòðîê, ò.å. èõ îáúåäèíåíèå. Îáîçíà÷àåòñÿ ýòà îïåðàöèÿ çíàêîì ïëþñ (+). Ðåçóëüòàòîì âûïîëíåíèÿ îïåðàöèè ÿâëÿåòñÿ òàêæå ñòðîêà. Ïðèìåð:

var st1="Ïðèâåò";

var st2="Âàñÿ";

var st3=st1+st2;

 ðåçóëüòàòå â ïåðåìåííîé st3 áóäåò çíà÷åíèå "Ïðèâåò Âàñÿ".

 êîíöå ïðèâåäåì òàáëèöó ïðèîðèòåòîâ îïåðàöèé â ïîðÿäêå èõ óáûâàíèÿ. Ïðèîðèòåò îïåðàöèé îïðåäåëÿåò ïîðÿäîê, â êîòîðîì âûïîëíÿþòñÿ îïåðàöèè â âûðàæåíèè.

íàçâàíèå

îáîçíà÷åíèå

èíêðåìåíò

++

äåêðåìåíò

--

îòðèöàíèå

!

óíàðíûé ìèíóñ

-

óìíîæåíèå

*

äåëåíèå, îñòàòîê îò äåëåíèÿ

/,%

ñëîæåíèå

+

âû÷èòàíèå

-

ñðàâíåíèå

<, >, <=, >=

ðàâåíñòâî

==

íå ðàâåíñòâî

!=

ëîãè÷åñêîå È

&&

ëîãè÷åñêîå ÈËÈ

||

ïðèñâàèâàíèå

=, +=, -=, *=, /=, %=, !=

 

2.Ðàçìåùåíèå  javascript-êîäà

Javascript-êîä ìîæåò áûòü ðàçìåùåí êàê íà ñàìîé ñòðàíèöå, òàê è âî âíåøíåì ôàéëå.

Javascript-êîä íà ñòðàíèöå

Ñöåíàðèè, íàïèñàííûå íà ÿçûêå javascript, ìîãóò ðàñïîëàãàòüñÿ íà ñàìîé html-ñòðàíèöå ìåæäó òåãàìè <script></script>, êîòîðûå â ñâîþ î÷åðåäü îáû÷íî íàõîäÿòñÿ â òåãàõ <head></head>. Ó òåãà <script> äîëæåí áûòü óêàçàí ïàðàìåòð language, êîòîðûé è óêàçûâàåò ÿçûê íàïèñàíèÿ ñêðèïòà:

 

<html>

<head>

<title>Çàãîëîâîê äîêóìåíòà</title>

<link rel="stylesheet" type="text/css" href="style.css">

<script language="javascript"></script>

</head>

<body>

</body>

</html>

 

Òåîðåòè÷åñêè òåãè <script></script> ìîãóò ðàñïîëàãàòüñÿ è â òåëå äîêóìåíòà (â òåãàõ <body></body>). Âûïîëíÿòüñÿ òàêîé ñöåíàðèé áóäåò òîãäà, êîãäà áðàóçåð "äî÷èòàåò" ñòðàíèöó äî ýòîãî ìåñòà (äî òåãîâ <script></script>). Èñïîëüçîâàòü òàêîé ñïîñîá ñåé÷àñ íå ïðèíÿòî.

Javascript-êîä âî âíåøíåì ôàéëå

Ñîçäàéòå â áëîêíîòå ñòðàíèöó (ïîêà ïóñòóþ) è ñîõðàíèòå åå êàê script.js â òó æå ïàïêó, ãäå ëåæèò html-ñòðàíèöà:

 

3. JavaScript îáðàáîò÷èêè ñîáûòèé

Äàâàéòå íàïèøåì íàøó ïåðâóþ ïðîãðàììó. Äëÿ ýòîãî ñäåëàåì èñêëþ÷åíèå è ïîìåñòèì íàø javascript-êîä íà html-ñòðàíèöå. Èòàê, îòêðîéòå (èëè ñîçäàéòå) html-ñòðàíèöó è ïîìåñòèòå â íåå ñëåäóþùèé êîä:

 

<html>

<head>

<title>Çàãîëîâîê äîêóìåíòà</title>

<link rel="stylesheet" type="text/css" href="style.css">

<script language="javascript">

      document.write("Ìîÿ ïåðâàÿ ñòðàíèöà.");

</script>

</head>

<body>

</body>

</html>

 

Îòêðîéòå ýòó ñòðàíèöó â áðàóçåðå, îíà âûãëÿäèò òàê:

Ìîÿ ïåðâàÿ ñòðàíèöà

 

Äàâàéòå ðàçáåðåìñÿ êàê ýòî ðàáîòàåò. Áðàóçåð ÷èòàåò íàøó html-ñòðàíèöó, âèäèò îïåðàòîð äëÿ âûïîëíåíèÿ document.write("Ìîÿ ïåðâàÿ ñòðàíèöà."); è âûïîëíÿåò åãî. Ðàññìîòðèì èç ÷åãî ñîñòîèò ñàì îïåðàòîð (èíñòðóêöèÿ)

js3

Ïðè èíòåðïðåòàöèè html-ñòðàíèöû áðàóçåð ñîçäàåò îáúåêòû javascript. Îíè õðàíÿòñÿ â âèäå èåðàðõè÷åñêîé ñòðóêòóðû, îòðàæàÿ ñòðóêòóðó äîêóìåíòà, íàïðèìåð:

js4

Íà ñàìîì âåðõíåì óðîâíå íàõîäèòñÿ îáúåêò window, ïðåäñòàâëÿþùèé îêíî áðàóçåðà è ÿâëÿþùèéñÿ "ðîäèòåëåì" âñåõ îñòàëüíûõ îáúåêòîâ. Ðàñïîëîæåííûå íèæå ìîãóò èìåòü ñâîè ïîä÷èíåííûå îáúåêòû. Òàê îáúåêò document (òåêóùàÿ ñòðàíèöà) ìîæåò èìåòü äî÷åðíèé îáúåêò form (ôîðìà) è ò.ä.

 

Âñå îáúåêòû èìåþò ìåòîäû (îòäåëÿþòñÿ îò îáúåêòà òî÷êîé), íàïðèìåð:

document.write ïîçâîëÿåò ïèñàòü òåêñò â òåêóùóþ ñòðàíèöó,

window.open îòêðûâàåò íîâîå îêíî áðàóçåðà.

 

Òàêæå îáúåêòû èìåþò ñâîéñòâà, íàïðèìåð:

document.bgcolor ñîäåðæèò çíà÷åíèå ôîíîâîãî öâåòà òåêóùåé ñòðàíèöû,

document.title ñîäåðæèò çàãîëîâîê ñòðàíèöû.

 

Âñå èíñòðóêöèè ïðîãðàììíîãî êîäà çàêàí÷èâàþòñÿ òî÷êîé ñ çàïÿòîé. Îá ýòîì íàäî ïîìíèòü.

 

Ñöåíàðèé, êîòîðûé ìû íàïèñàëè, âûïîëíèëñÿ íåìåäëåííî ïîñëå çàãðóçêè ñòðàíèöû. Îäíàêî â áîëüøèíñòâå ñëó÷àåâ íàì íóæíî, ÷òîáû ñöåíàðèé âûïîëíÿëñÿ ïîñëå êàêèõ-ëèáî äåéñòâèé ïîëüçîâàòåëÿ: íàæàòèÿ íà êíîïêó èëè ââîäà òåêñòà. Ò.å. â îòâåò íà ïîëüçîâàòåëüñêîå ñîáûòèå.

 

Äëÿ ýòîãî â òåãàõ ýëåìåíòîâ ñòðàíèöû ââåäåíû ïàðàìåòðû îáðàáîòêè ñîáûòèé, çàäàþùèå äåéñòâèÿ, âûïîëíÿåìûå ïðè âîçíèêíîâåíèè ñîáûòèÿ, ñâÿçàííîãî ñ ýëåìåíòîì. Íàïðèìåð:

 

<div onClick="addText();"></div>

 

Çäåñü Click - ñîáûòèå (ùåë÷îê ïî div-ó), onClick - îáðàáîò÷èê ñîáûòèÿ, addText() - èìÿ ôóíêöèè, êîòîðàÿ ñðàáîòàåò ïðè âîçíèêíîâåíèè ýòîãî ñîáûòèÿ (ùåë÷êà ïî div-ó).

 

Ôóíêöèè ìû áóäåì ðàññìàòðèâàòü â ñëåäóþùåì óðîêå, à ñåé÷àñ ïåðå÷èñëèì ñîáûòèÿ, êîòîðûå ïîääåðæèâàþòñÿ javascript. Çàïîìèíàòü èõ íå ñëåäóåò, â äàëüíåéøåì ìîæåòå ïðîñòî îáðàùàòüñÿ ê ýòîé òàáëèöå.

ñîáûòèå

êîãäà ïðîèñõîäèò

îáðàáîò÷èê ñîáûòèÿ

Blur

ïîòåðÿ îáúåêòîì ôîêóñà

onBlur

Change

ïîëüçîâàòåëü èçìåíÿåò çíà÷åíèå ýëåìåíòà

onChange

Click

ïîëüçîâàòåëü ùåëêàåò ìûùüþ ïî îáúåêòó

onClick

DblClick

ïîëüçîâàòåëü äåëàåò äâîéíîé ùåë÷îê ìûøüþ ïî îáúåêòó

onDblClick

DragDrop

ïîëüçîâàòåëü ïåðåòàñêèâàåò ìûøüþ îáúåêò

onDragDrop

Error

âîçíèêíîâåíèå javascript-îøèáêè

onError

Focus

îêíî èëè ýëåìåíò ôîðìû ïîëó÷àåò ôîêóñ

onFocus

KeyDown

ïîëüçîâàòåëü íàæèìàåò êëàâèøó êëàâèàòóðû

onKeyDown

KeyPress

ïîëüçîâàòåëü óäåðæèâàåò íàæàòîé êëàâèøó êëàâèàòóðû

onKeyPress

KeyUp

ïîëüçîâàòåëü îòïóñêàåò êëàâèøó êëàâèàòóðû

onKeyUp

Load

äîêóìåíò çàãðóæàåòñÿ â áðàóçåð

onLoad

MouseDown

ïîëüçîâàòåëü íàæèìàåò êíîïêó ìûøè

onMouseDown

MouseOut

óêàçàòåëü ìûøè âûõîäèò çà ïðåäåëû ýëåìåíòà

onMouseOut

MouseOver

óêàçàòåëü ìûøè ïîìåùàåòñÿ íàä ýëåìåíòîì

onMouseOver

MouseUp

ïîëüçîâàòåëü îòïóñêàåò êíîïêó ìûøè

onMouseUp

Move

ïîëüçîâàòåëü ïåðåìåùàåò îêíî

onMove

Reset

ïîëüçîâàòåëü íàæèìàåò êíîïêó "reset" ôîðìû

onReset

Resize

ïîëüçîâàòåëü èçìåíÿåò ðàçìåðû îêíà èëè ýëåìåíòà

onResize

Select

ïîëüçîâàòåëü âûáèðàåò ýëåìåíò ôîðìû

onSelect

Submit

ïîëüçîâàòåëü íàæèìàåò êíîïêó "submit" ôîðìû

onSubmit

Unload

ïîëüçîâàòåëü çàêðûâàåò äîêóìåíò

onUnload

 

Õîðîøèì ñòèëåì ïðîãðàììèðîâàíèÿ ÿâëÿåòñÿ îôîðìëåíèå äåéñòâèé, âûïîëíÿåìûõ ïðè îáðàáîòêå ñîáûòèé, â âèäå ôóíêöèé. Èõ ìû è áóäåì èçó÷àòü â ñëåäóþùåì óðîêå.

 

4.Ôóíêöèè

Ôóíêöèÿ - ýòî èìåíîâàííàÿ ïîñëåäîâàòåëüíîñòü îïåðàòîðîâ (èíñòðóêöèé). Ëþáàÿ ôóíêöèÿ èìååò ñëåäóþùèé ñèíòàêñèñ:

 

function èìÿ (){

îïåðàòîð;

.......

îïåðàòîð;

}

 

Ñíà÷àëà èäåò êëþ÷åâîå ñëîâî function, çàòåì èìÿ ôóíêöèè, çàòåì â êðóãëûõ ñêîáêàõ ïåðå÷èñëÿþòñÿ ïàðàìåòðû (åñëè îíè åñòü), çàòåì â ôèãóðíûõ ñêîáêàõ ïåðå÷èñëÿþòñÿ îïåðàòîðû, ò.å. ïîñëåäîâàòåëüíîñòü âûïîëíÿåìûõ äåéñòâèé. Êàæäûé îïåðàòîð çàêàí÷èâàåòñÿ òî÷êîé ñ çàïÿòîé.

 

Ðàññìîòðèì íà ïðèìåðå. Âî âòîðîì óðîêå ìû ñîçäàëè html-ñòðàíèöó, ñòðàíèöó script.js äëÿ ôóíêöèé è ïîäêëþ÷èëè îäíó ê äðóãîé. Ýòè ñòðàíèöû ìû è áóäåì èñïîëüçîâàòü. Ïîìåñòèì â html-ñòðàíèöó ñëåäóþùèé êîä:

 

<html>

<head>

<title>Çàãîëîâîê äîêóìåíòà</title>

<link rel="stylesheet" type="text/css" href="style.css">

<script type="text/javascript" src="script.js"></script>

</head>

<body>

<div onClick="showMessage();">Ùåëêíè ìåíÿ</div>

</body>

</html>

 

Ìû óêàçàëè, ÷òî ïðè ùåë÷êå ïîëüçîâàòåëÿ ïî div-ó (ò.å. ïî ñëîâàì "Ùåëêíè ìåíÿ") äîëæíà áûòü âûçâàíà ôóíêöèÿ ñ èìåíåì "showMessage". Òåïåðü íà ñòðàíèöå script.js íàäî íàïèñàòü ñàìó ôóíêöèþ "showMessage". Îòêðûâàåì ñòðàíèöó script.js è ïèøåì:

 

function showMessage(){

  alert ("Âû ùåëêíóëè ïî div-ó");

}

 

Íàøà ôóíêöèÿ "showMessage" áóäåò âûïîëíÿòü îäíî äåéñòâèå - îòîáðàæàòü îêíî ïðåäóïðåæäåíèé ñ òåêñòîì "Âû ùåëêíóëè ïî div-ó". alert - ýòî ñòàíäàðòíàÿ ôóíêöèÿ javascript, êîòîðàÿ è âûâîäèò îêíî ïðåäóïðåæäåíèé, ìû ëèøü çàäàåì òåêñò äëÿ ýòîãî îêíà.

 

 javascript åñòü ñòàíäàðòíûé íàáîð ôóíêöèé, êîòîðûé ìîæíî èñïîëüçîâàòü (íàïðèìåð, alert) è òàê íàçûâàåìûå ïîëüçîâàòåëüñêèå ôóíêöèè, ò.å. òå, êîòîðûå ìû ñîçäàåì ñàìè. Íåêîòîðûå ôóíêöèè javascript ìû áóäåì èçó÷àòü ïî ìåðå íåîáõîäèìîñòè, íåêîòîðûì æå áóäóò ïîñâÿùåíû îòäåëüíûå óðîêè.

 

Âåðíåìñÿ ê íàøåìó ïðèìåðó. Îòêðîéòå âàøó html-ñòðàíèöó ñ ïîìîùüþ áðàóçåðà è ùåëêíèòå ïî div-ó. Ìîæåòå ùåëêíóòü è â ïðèìåðå íèæå.

 

Ùåëêíè ìåíÿ

 

 

Òàêèì îáðàçîì, ìû ðàññìîòðåëè ìåõàíèçì ðàáîòû îáðàáîòêè ñîáûòèé:

 

 html-ñòðàíèöå ìû ïðèâÿçûâàåì ê íóæíîìó ýëåìåíòó îáðàáîò÷èê ñîáûòèÿ (onClick, onMouseUp è ò.ä.), â êà÷åñòâå çíà÷åíèÿ êîòîðîãî óêàçûâàåì èìÿ ôóíêöèè, êîòîðàÿ è äîëæíà ñðàáîòàòü, êîãäà íàñòàíåò ñîáûòèå.

 

 

Íà ñòðàíèöå ñ ðàñøèðåíèå .js ìû ïèøåì êîä ýòîé ôóíêöèè, ò.å. èíñòðóêöèè, êîòîðûå äîëæíû áûòü âûïîëíåíû, åñëè ôóíêöèÿ èíèöèàëèçèðîâàíà (ê íåé îáðàòèëèñü).

 

 

Äàâàéòå óñëîæíèì çàäà÷ó è íàïèøåì ñöåíàðèé, êîòîðûé áóäåò ðàññ÷èòûâàòü ïëîùàäü ïðÿìîóãîëüíèêà ïî ââåäåííûì ïîëüçîâàòåëåì äëèíå è øèðèíå. Äëÿ ýòîãî ñíà÷àëà ðàçìåñòèì íà html-ñòðàíèöå íóæíûå ýëåìåíòû ôîðìû:

 

<html>

<head>

<title>Ðàñ÷åò ïëîùàäè ïðÿìîóãîëüíèêà</title>

<link rel="stylesheet" type="text/css" href="style.css">

<script type="text/javascript" src="script.js"></script>

</head>

<body>

 

<form name="forma1">

 

Ââåäèòå äëèíó ïðÿìîóãîëüíèêà<input type="text" name="t1" size="10"><br><br>

 

Ââåäèòå øèðèíó ïðÿìîóãîëüíèêà<input type="text" name="t2" size="10"><br><br>

 

<input type="button" name="button" value="Âû÷èñëèòü"><br><br>

 

Ïëîùàäü ïðÿìîóãîëüíèêà ðàâíà<input type="text" name="res" size="10">

 

</form>

 

</body>

</html>

 

Èòàê, ïîëüçîâàòåëü ââîäèò çíà÷åíèÿ øèðèíû è äëèíû è íàæèìàåò íà êíîïêó "Âû÷èñëèòü". Ïîñëå ÷åãî, â ïîëå ïëîùàäü äîëæåí ïîÿâèòüñÿ ðåçóëüòàò. Òàêèì îáðàçîì, ñîáûòèå íàñòóïàåò ïðè íàæàòèè íà êíîïêó "Âû÷èñëèòü", çíà÷èò èìåííî ê íåé ìû è ïðèâÿæåì îáðàáîò÷èê ñîáûòèÿ. Ôóíêöèþ âû÷èñëåíèÿ ïëîùàäè íàçîâåì "areaRectangle":

 

.......

<input type="button" name="button" value="Âû÷èñëèòü"

                                    onClick="areaRectangle();"><br><br>

.......

 

 

Òåïåðü ïðèøëî âðåìÿ íàïèñàòü ñàìó ôóíêöèþ "areaRectangle". Äëÿ ýòîãî îòêðîåì ñòðàíèöó script.js è íàïèøåì çàãîòîâêó äëÿ ôóíêöèè:

 

function areaRectangle(){

}

 

 

Òåïåðü íàäî íàïèñàòü òåëî ôóíêöèè. Äëÿ íà÷àëà îáúÿâèì òðè ïåðåìåííûå: a - çíà÷åíèå äëèíû ïðÿìîóãîëüíèêà, b - çíà÷åíèå øèðèíû ïðÿìîóãîëüíèêà, s - ïëîùàäü ïðÿìîóãîëüíèêà:

 

function areaRectangle(){

  var a;

  var b;

var s; 

}

 

Çíà÷åíèå (value) a äîëæíî áðàòüñÿ èç òåêóùåé ñòðàíèöû (document), èç ôîðìû ñ èìåíåì "forma1", èç òåêñòîâîãî ïîëÿ ñ èìåíåì "t1". Òàê ýòî è çàïèñûâàåòñÿ document.forma1.t1.value, ò.å. ïåðå÷èñëÿþòñÿ ÷åðåç òî÷êó èìåíà îáúåêòîâ îò ðîäèòåëüñêîãî äî íóæíîãî (èåðàðõè÷åñêóþ ñòðóêòóðó îáúåêòîâ ìû îáñóæäàëè â ïðåäûäóùåì óðîêå). Ïîñëåäíèì óêàçûâàåòñÿ íåîáõîäèìîå ñâîéñòâî îáúåêòà (value).

 

Àíàëîãè÷íî è äëÿ çíà÷åíèÿ b - document.forma1.t2.value.

 

À íàøà ïåðåìåííàÿ s - åñòü ïðîèçâåäåíèå a íà b. Çàïèøåì ýòî â òåëî ôóíêöèè:

 

function areaRectangle(){

  var a=document.forma1.t1.value;

  var b=document.forma1.t2.value;

var s=a*b;

}

 

Îñòàëîñü òîëüêî íàïèñàòü èíñòðóêöèþ çàïèñè âû÷èñëåííîé ïëîùàäè â òåêñòîâîå ïîëå ñ èìåíåì "res" íàøåé ôîðìû. Ò.å íàì íàäî, ÷òîáû â òåêùóþ ñòðàíèöó, â ôîðìó ñ èìåíåì "forma1", â òåêñòîâîå ïîëå ñ èìåíåì "res", â êà÷åñòâå çíà÷åíèÿ (value) áûëî ïðèñâîåíî çíà÷åíèå s. Òàê è çàïèøåì:

 

function areaRectangle(){

  var a=document.forma1.t1.value;

  var b=document.forma1.t2.value;

  var s=a*b;

  document.forma1.res.value=s;

}

 

Ïàðàìåòðû ôóíêöèé

Îáðàòèòå âíèìàíèå, â ôóíêöèè ìû èñïîëüçóåì èìÿ ôîðìû - forma1, åãî ìû è ñäåëàåì ïàðàìåòðîì. Ò.å. ïåðåïèøåì íàøó ôóíêöèþ ñëåäóþùèì îáðàçîì:

function areaRectangle(obj){

var a=obj.t1.value;

  var b=obj.t2.value;

  var s=a*b;

  obj.res.value=s;

}

 

Ò.å ìû óêàçàëè, ÷òî ôóíêöèÿ äîëæíà ïðèíÿòü â êà÷åñòâå ïàðàìåòðà êàêîé-òî îáúåêò (obj) è ïðîèçâîäèòü âñå äåéñòâèÿ ñ íèì. Íàì îñòàëîñü íà íàøåé html-ñòðàíèöå óêàçàòü èìÿ îáúåêòà:

.......

<input type="button" name="button" value="Âû÷èñëèòü"

onClick="areaRectangle(forma1);"><br><br>

.......

 

Òåïåðü, êîãäà íàì ïîíàäîáèòñÿ âû÷èñëèòü ïëîùàäü íà êàêîé-ëèáî äðóãîé ñòðàíèöå, íàì äîñòàòî÷íî áóäåò âûçâàòü ôóíêöèþ areaRectangle(), à â ñêîáêàõ óêàçàòü èìÿ ôîðìû. Ïðîâåðüòå ðàáîòó íàøåãî ñöåíàðèÿ â áðàóçåðå.

 

5.Âåòâëåíèÿ â ïðîãðàììå - îïåðàòîð if

Î÷åíü ÷àñòî âîçíèêàåò ñèòóàöèÿ, êîãäà íàì íóæíî âûïîëíèòü êàêîå-ëèáî äåéñòâèå â çàâèñèìîñòè îò êàêîãî-ëèáî óñëîâèÿ. Íàïðèìåð, ó íàñ èíòåðíåò-ìàãàçèí îäåæäû. Ìû ñïðàøèâàåì ó ïîëüçîâàòåëÿ êòî îí (ìóæ÷èíà èëè æåíùèíà) è â çàâèñèìîñòè îò îòâåòà îòîáðàæàåì ñïèñîê ñîîòâåòñòâóþùèõ òîâàðîâ (ìóæñêèõ èëè æåíñêèõ). Ïðè íàïèñàíèè ïîäîáíûõ ïðîãðàìì èñïîëüçóåòñÿ óñëîâíûé îïåðàòîð if . Ñèíòàêñèñ ó íåãî ñëåäóþùèé:

 

if B {S1}

else {S2}

 

ãäå B - âûðàæåíèå ëîãè÷åñêîãî òèïà, à S1 è S2 - îïåðàòîðû.

Ðàáîòàåò ýòî òàê: âû÷èñëÿåòñÿ çíà÷åíèå âûðàæåíèÿ B, åñëè îíî èñòèííî, òî âûïîëíÿåòñÿ îïåðàòîð S1, åñëè îíî ëîæíî, òî âûïîëíÿåòñÿ îïåðàòîð S2.

Ïðèìåð

function maxZnach(obj){

  var a=1*obj.zn1.value;

  var b=1*obj.zn2.value;

  var c=1*obj.zn3.value;

  var m=a;

  if (b>m) m=b;

  if (c>m) m=c;

  obj.res.value=m;

}

Îïåðàòîð âûáîðà switch

 ïðåäûäóùåì óðîêå ìû ïîçíàêîìèëèñü ñ îïåðàòîðîì if. Îí óäîáåí, êîãäà íóæíî ñîâåðøèòü êàêîå-ëèáî äåéñòâèå â çàâèñèìîñòè îò âûáîðà ïîëüçîâàòåëÿ. Íî ÷òî åñëè òàêèõ âûáîðîâ áóäåò ìíîãî? Íàïðèìåð, ìû çíàåì ïðîãíîç ïîãîäû íà íåäåëþ âïåðåä. À âûäàåì ïðîãíîç òîëüêî íà îäèí äåíü, íà òîò êîòîðûé âûáåðåò ïîëüçîâàòåëü. Êàê ýòî ñäåëàòü?

 

Ñèíòàêñèñ ó íåãî ñëåäóþùèé:

switch (B)

{

case L1: S1;

case L2: S2;

... ... ...

case Ln: Sn;

default:S

}

 

ãäå B - âûðàæåíèå, L1, L2, ..., Ln - ëèòåðàëû, à S1, S2, ..., Sn - îïåðàòîðû.

 

Ðàáîòàåò ýòî òàê: âû÷èñëÿåòñÿ çíà÷åíèå âûðàæåíèÿ B. Åñëè B ðàâíî L1, òî âûïîëíÿåòñÿ îïåðàòîð S1. Åñëè B ðàâíî L2, òî âûïîëíÿåòñÿ îïåðàòîð S2 è ò.ä. Åñëè B íå ðàâíî íè îäíîìó èç çíà÷åíèé, òî âûïîëíÿåòñÿ îïåðàòîð S.

 

Äàâàéòå ïåðåïèøåì êîä íàøåé ïîñëåäíåé ôóíêöèè ñ ïîìîùüþ îïåðàòîðà switch.

 

function Vday1(obj){

  var a=obj.zn.value;

var s;

  switch (a)

  {

   case 'ïîíåäåëüíèê': s="Â ïîíåäåëüíèê áóäåò âåòðåíî, òåìïåðàòóðà âîçäóõà ïîäíèìåòñÿ äî +20 ãðàäóñîâ";break;

   case 'âòîðíèê': s="Âî âòîðíèê áóäåò ñîëíå÷íî, òåìïåðàòóðà âîçäóõà ïîäíèìåòñÿ äî +25 ãðàäóñîâ"; break;

   case 'ñðåäà': s="Â ñðåäó áóäåò ïðîõëàäíî, òåìïåðàòóðà âîçäóõà îïóñòèòñÿ äî +17 ãðàäóñîâ"; break;

   case '÷åòâåðã': s=" ÷åòâåðã áóäåò ïàñìóðíî, òåìïåðàòóðà âîçäóõà îïóñòèòñÿ äî +10 ãðàäóñîâ"; break;

   case 'ïÿòíèöà': s=" ïÿòíèöó áóäåò îáëà÷íî, òåìïåðàòóðà âîçäóõà ïîäíèìåòñÿ äî +15 ãðàäóñîâ"; break;

   case 'ñóááîòà': s="Â ñóááîòó áóäåò âåòðåíî, òåìïåðàòóðà âîçäóõà ïîäíèìåòñÿ äî +27 ãðàäóñîâ"; break;

   case 'âîñêðåñåíüå': s="Â âîñêðåñåíüå áóäåò ÿñíî, òåìïåðàòóðà âîçäóõà ïîäíèìåòñÿ äî +30 ãðàäóñîâ";break;

   default: s='Óêàæèòå ïðàâèëüíî äåíü íåäåëè'

  }

  obj.res.value=s;

}

 

Ðåçóëüòàò òîò æå, à êîä ãîðàçäî êîðî÷å, äà è ÷èòàáåëüíåå.

 

Îïåðàòîð break èñïîëüçóåòñÿ, ÷òîáû îáåñïå÷èòü çàâåðøåíèå ðàáîòû ïåðåêëþ÷àòåëÿ ïîñëå âûïîëíåíèÿ íóæíîãî âàðèàíòà. Åñëè åãî îïóñòèòü íè÷åãî íå èçìåíèòñÿ, ïðîñòî ñ íèì ñöåíàðèé ðàáîòàåò áûñòðåå, õîòÿ â äàííîì ïðèìåðå ýòî è íåçàìåòíî.

 

6.Öèêëû

Öèêë for

 

Ñàìûé ïîïóëÿðíûé âèä öèêëîâ - öèêë for. Ñèíòàêñèñ ó íåãî ñëåäóþùèé:

 

for (A; B; I){S}

 

ãäå

A - ïåðâîíà÷àëüíîå âûðàæåíèå,

B - óñëîâèå ïðîäîëæåíèÿ. Åñëè ýòî âûðàæåíèå ëîæíî, òî âûïîëíåíèå öèêëà çàâåðøàåòñÿ,

I - âûðàæåíèå èíêðåìåíòà,

{} - òåëî öèêëà,

S - îïåðàòîðû.

 

function summa(obj) {

     var summa=0;

     var a1=1*obj.a1.value;

     var a2=1*obj.a2.value;

     for (var i = a1; i <= a2; i++) {

      summa+=i;

     }

     obj.result.value = summa;

}

 

Öèêë while

 

Íå ìåíåå ïîïóëÿðíûé âèä öèêëîâ - öèêë while. Ñèíòàêñèñ ó íåãî ñëåäóþùèé:

 

while (B){S}

 

ãäå

B - óñëîâèå ïðîäîëæåíèÿ. Åñëè ýòî âûðàæåíèå ëîæíî, òî âûïîëíåíèå öèêëà çàâåðøàåòñÿ,

{} - òåëî öèêëà,

S - îïåðàòîðû.

 

Èíûìè ñëîâàìè, îïåðàòîðû S, âûïîëíÿþòñÿ äî òåõ ïîð, ïîêà óñëîâèå B íå ñòàíåò ëîæíûì.

 

var i = 0;

while (i < 3)

{

  alert(i);

  i++;

}