HTML, Excel, Word, SEOÎñíîâû JavaScript ⇒ Ââåäåíèå

ÎÑÍÎÂÛ JavaScript

Ó÷åáíèê JavaScript
·Çíàêîìñòâî ñ JS. Ïåðåìåííûå, îïåðàòîðû, îïåðàöèè
·Ôóíêöèè
·Ìîäåëü HTML äîêóìåíòà
·Èåðàðõèÿ äîêóìåíòîâ â áðàçóåðå
·Ôîðìû
·Îêíà è ôðåéìû
·Ññûëêè, çàãîëîâîê, ñòàòóñ
·Ñîáûòèÿ
·Ñîáûòèÿ êëàâèàòóðû è ìûøè
·Ñîáûòèÿ. Òàéìåð
·Ñòèëè. Óïðàâëåíèå ñòèëÿìè
·Ñëîè è áëîêè. Óïðàâëåíèå âèäèìîñòüþ
·Îáúåêòû JS
·Âíåøíèå îáúåêòû
·Âíóòðåííèå îáúåêòû
·Ìàññèâû
·Ðåãóëÿðíûå âûðàæåíèÿ
·Ìàòåìàòèêà â JS
·Ïðèìåð ïðîñòîãî êàëüêóëÿòîðà
·Äàòà è âðåìÿ
·Cookies è õðàíåíèå ñîñòîÿíèÿ
·Íåìíîãî îá AJAX
·Ðàáîòà ñ WebMoney

Îòåëü â Ðîñòîâå-íà-Äîíó – êîìôîðòíîå ðàçìåùåíèå äëÿ ãîñòåé ãîðîäà.

JavaScript. Ââåäåíèå

×òî òàêîå JS

Ïðèìåðû JS, ïðîñòûå è ñëîæíûå


×òî òàêîå JavaScript

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

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


Âñå ýòî äèíàìè÷åñêèé HTML (èëè, ñîêðàùåííî, DHTML).


Ñðàçó íóæíî ñêàçàòü, ÷òî DHTML – ýòî íå êàêîé-òî ñïåöèàëüíûé ÿçûê ðàçìåòêè è íå ìîäèôèöèðîâàííûé HTML. Ïîíÿòèå DHTML áàçèðóåòñÿ íà òðåõ âåùàõ ñîáñòâåííî íà ÿçûêå HTML, íà êàñêàäíûõ òàáëèöàõ ñòèëåé CSS è íà âñòðîåííîì â áðàóçåð ÿçûêå – ÷àùå âñåãî ýòî JavaScript.


Îïèñûâàòü òîíêîñòè CSS è HTML ÿ íå ñòàíó – ýòîìó ïîñâÿùåíû äðóãèå ó÷åáíèêè, ÿ æå â áîëüøåé ñòåïåíè áóäó ðàññêàçûâàòü î JavaScript (èëè JS), è åãî ïðèìåíåíèè â ñâÿçêå ñ HTML è CSS.


Äëÿ íà÷àëà ñòîèò îïðåäåëèòüñÿ, ÷òî æå òàêîå JavaScript?


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

Ïåðâîå ñâîéñòâî – èñïîëíåíèå íà êëèåíòñêîì êîìïüþòåðå. Åñëè âû çíàåòå, êàê âîîáùå ðàáîòàåò âåñü ýòîò èíòåðíåò, òî âàì äîëæíî áûòü èçâåñòíî, ÷òî âåá-ñòðàíèöû, êîòîðûå îòîáðàæàåò áðàóçåð, ñîçäàþòñÿ (èëè ïðîñòî õðàíÿòñÿ) íà äðóãîì êîìïüþòåðå, íàçûâàåìîì ñåðâåðîì. Áðàóçåð ïîñûëàåò çàïðîñ íà ñåðâåð è ïîëó÷àåò â îòâåò HTML-êîä ñòðàíèöû.  ýòîì ñëó÷àå áðàóçåð íàçûâàåòñÿ êëèåíòîì.

Ãëàâíîå – ïîíèìàòü, ÷òî ïîñëå òîãî, êàê ñòðàíèöà îòäàíà áðàóçåðó, ñåðâåð óæå íå ìîæåò èçìåíèòü åå ñîäåðæèìîå.

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


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


Ñðàçó íóæíî ñêàçàòü, ÷òî â ðàçíûõ áðàóçåðàõ JavaScript âåäåò ñåáÿ íåìíîãî ïî-ðàçíîìó. Ýòî íå êàñàåòñÿ ñàìîãî ÿçûêà – îäíè è òå æå êîíñòðóêöèè áóäóò âûïîëíÿòüñÿ îäèíàêîâî. Âñå äåëî â ñðåäñòâàõ, êîòîðûå áðàóçåð ïðåäîñòàâëÿåò ñêðèïòó – òàê, íàïðèìåð, ìíîãèå ñêðèïòû ðàáîòàþò â áðàóçåðå Mozilla FireFox, íî âûäàþò îøèáêè â äðóãèõ áðàóçåðàõ, íàïðèìåð, â Apple Safari.


Ïîýòîìó îäíèì èç òðåáîâàíèé ê êà÷åñòâåííûì ñêðèïòàì ÿâëÿåòñÿ îáÿçàòåëüíàÿ ðàáîòîñïîñîáíîñòü êàê ìèíèìóì â FireFox è Internet Explorer.


Âñå ïðèìåðû ñêðèïòîâ, êîòîðûå âû íàéäåòå â ýòîì ó÷åáíèêå, áóäóò ñîîòâåòñòâîâàòü äàííîìó òðåáîâàíèþ.


È, íàïîñëåäîê, ðàçãàäêà ñòðàííîãî íàçâàíèÿ.


Äåëî â òîì, ÷òî ïðè ñîçäàíèè ýòîãî ÿçûêà, èíæåíåðû Netscape ðåøèëè ñäåëàòü åìó äîïîëíèòåëüíóþ ðåêëàìó. À îäíèì èç ñàìûõ ïîïóëÿðíûõ, ïåðñïåêòèâíûõ è ïîäàþùèõ íàäåæäû ÿçûêîâ íà òî âðåìÿ ñ÷èòàëñÿ Java. Äîëãî ðàçäóìûâàòü íå ïðèøëîñü.

Ïðèìåðû ïðîñòûå è ñëîæíûå.

Íåñìîòðÿ íà òî, ÷òî ÿçûê JS ÷àùå âñåãî èñïîëüçóåòñÿ äëÿ íåáîëüøèõ âñòàâîê â ñòðàíèöû, ýòî ÿçûê äîñòàòî÷íî ìîùíûé. Îí ïðàêòè÷åñêè íå óñòóïàåò óæå óïîìÿíóòîìó ÿçûêó Java. Òàê, íàïðèìåð, íà ýòîì ÿçûêå ìîæíî ñîçäàâàòü (êîíå÷íî, íå áåç ó÷àñòèÿ áðàóçåðà) ïðîãðàììû, ìàëî ÷åì îòëè÷àþùèåñÿ îò ïðèâû÷íûõ, òàê íàçûâàåìûõ äåñêòîïíûõ.


×òîáû íå áûòü ãîëîñëîâíûì, ÿ ïðèâåäó ïðèìåðû:

  • Google.com. Ýòà ôèðìà èñïîëüçóåò ÿçûê JavaScript âî ìíîæåñòâå ñâîèõ ïðîäóêòîâ. Òàê, íàïðèìåð, èçâåñòíàÿ ïî÷òà Gmail ïðàêòè÷åñêè ïîëíîñòüþ ïîñòðîåíà íà JS. À òàêèå ïðîåêòû, êàê Google Maps èëè Google Docs âîîáùå íåâîçìîæíû áåç ïðèìåíåíèÿ JavaScript
  • ExtJS.com. Çäåñü ìîæíî ïîñìîòðåòü, íà ÷òî ñïîñîáåí JS – ëó÷øèì ïðèìåðîì áóäåò Web Desktop, öåëèêîì íàïèñàííûé íà ýòîì ÿçûêå. Îá ExtJS ÿ åùå ðàññêàæó, íî çíà÷èòåëüíî ïîçæå
  • Êðîìå ïðèâåäåííûõ ñàéòîâ, ìîæíî áûëî áû íàçâàòü åùå òûñÿ÷è, êîòîðûå â òîé èëè èíîé ñòåïåíè èñïîëüçóþò JS. Íî, ÿ äóìàþ, ñòîèò äîáàâèòü ê ýòèì òûñÿ÷àì åùå îäèí – ýòî áóäåò âàø ñàéò.


    Ïî èñòîðè÷åñêè ñëîæèâøåéñÿ òðàäèöèè èçó÷åíèå ëþáîãî ÿçûêà íà÷èíàþò ñ òàê íàçûâàåìîãî «HelloWorld»'à, òî åñòü ïðîãðàììû, êîòîðàÿ íå äåëàåò íè÷åãî, êðîìå âûâîäà ïðîñòîãî ñîîáùåíèÿ. ß íå áóäó îòñòóïàòü îò ýòîé òðàäèöèè.


    Íî äëÿ íà÷àëà ñòîèò îáçàâåñòèñü íåêîòîðûìè èíñòðóìåíòàìè. Îíè î÷åíü ñèëüíî îáëåã÷àò ðàçðàáîòêó íà JavaScript.


    Äëÿ íà÷àëà, âàì ïîòðåáóåòñÿ ðåäàêòîð ñ ïîäñâåòêîé ñèíòàêñèñà. Âûáîð åãî – äåëî âêóñà. ß, íàïðèìåð, â êðóïíûõ ïðîåêòàõ èñïîëüçóþ Eclipse IDE, à â ïðîåêòàõ ïîìåíüøå – NotePad++. Âû ìîæåòå èñïîëüçîâàòü òîò ðåäàêòîð, êîòîðûé âàì áîëüøå íðàâèòñÿ (õîòÿ, ÷åñòíî ãîâîðÿ, «Áëîêíîò» èç ñòàíäàðòíîé ïîñòàâêè Windows ÿ áû íå ðåêîìåíäîâàë).


    Âòîðîé èíñòðóìåíò, áåç êîòîðîãî î÷åíü ñëîæíî îáîéòèñü, – ýòî îòëàä÷èê. Ïîêà ÷òî ÿ íå âñòðå÷àë îòëàä÷èêà ëó÷øåãî, ÷åì FireBug, êîòîðûé ïîñòàâëÿåòñÿ êàê ìîäóëü ê FireFox'ó. Äëÿ ÿðûõ ëþáèòåëåé Internet Explorer ìîæíî ïîðåêîìåíäîâàòü Microsoft Script Debugger, íî íà ìîé âçãëÿä îí íå òàê óäîáåí.


    Òåì æå, êòî ïðåäïî÷èòàåò Opera, Safary è åùå áîëåå ýêçîòè÷åñêèå áðàóçåðû, ÿ, ê ñîæàëåíèþ, íè÷åãî ïîñîâåòîâàòü íå ìîãó.


    Òåïåðü, êîãäà âû âîîðóæåíû è ãîòîâû äåéñòâîâàòü, âàì ïîíàäîáèòñÿ âåá-ñòðàíèöà.


    Äîñòàòî÷íî áóäåò ïðîñòîãî êàðêàñà, áåç ñîäåðæèìîãî. Íàïðèìåð:


     

    Åñëè âû îòêðîåòå åå â áðàóçåðå, òî, êàê è ñëåäîâàëî îæèäàòü, íè÷åãî íå óâèäèòå.

    Íî ìû ìîæåì óêàçàòü áðàóçåðó, ÷òî âíóòðü ýòîé ñòðàíèöû íóæíî âûâåñòè òåêñò.

    Äëÿ ýòîãî ê èñõîäíîìó êîäó ñòðàíèöû íóæíî ïîäêëþ÷èòü ñêðèïò.

    Ñäåëàòü ýòî ìîæíî äâóìÿ ñïîñîáàìè, è îáà ýòè ñïîñîáà èñïîëüçóþò òåã <script>

    Íàïðèìåð, ìîæíî íàïèñàòü òàê:


     

    Ïîïðîáóéòå òåïåðü îòêðûòü ýòó ñòðàíèöó â áðàóçåðå. Âû óâèäèòå ñèìïàòè÷íîå îêîøêî ñ íàäïèñüþ «Çäåñü áûë JavaScript» ñðàçó ïîñëå çàãðóçêè ñòðàíèöû (â íàñòðîéêàõ áðàóçåðà äîëæíû áûòü ðàçðåøåíû âñïëûâàþùèå îêíà).


    Êîíå÷íî, äî íàñòîÿùåãî ñêðèïòà åùå äàëåêî. Íî ýòî âàøà ïåðâàÿ ïðîãðàììà íà ÿçûêå JavaScript, è ýòî ïåðâûé óñïåõ â èçó÷åíèè ÿçûêà.



     íà÷àëî ñòðàíèöû



     íà÷àëî ñòðàíèöû