რა არის JavaScript

ამ თავში განხილული იქნება JavaScript-ის საწყისები, თავდაპირველად განვიხილავთ თუ რა არის JavaScript, რას აკეთებს JavaScript ვებ-გვერდზე, როგორ დავაკავშიროთ JavaScript HTML-თან. შემდგომ თავებში გამოყენებული იქნება არამარტო JavaScript, არამედ HTML-ც და CSS-ც, თუ არ იცით რა არის რომელიმე მათგანი, გირჩევთ გაეცნოთ HTML-CSS სტატიებს.

JavaScript როგორც High-level ენა

JavaScript არის სკრიპტული ან პროგრამული ენა, რომელიც საშუალებას გაძლევს, რომ იმპლემენტირება გაუკეთო სხვადასხვა ტიპის ფუნქციონალს ვებ-გვერდზე. JavaScript-ის თანხლებით შესაძლებელი გახდა სტატიკური ტიპის ვებ-გვერდის გაცოცხლება დინამიური სახით, მაგალითად: მესიჯის გამოტანა, სხვადასხვა ტიპის დინამიური კონტენტის გამოტანა. JavaScript განხილება, როგორც High-level ენა, რადგან მარტივად წაკითხვადი(human-readable) და მარტივად გასაგები ენა არის, რომელსაც ასევე გააჩნია ბევრი low-level აბსტრაქციის დეტალები. ეს თვისებები საშუაელბას აძლევს დეველოპერს ყურადღება პრობლემის გადაწყვეტაზე ჰქონდეს და არა low-level ოპერაციების შესრულებაზე.

რას აკეთებს JavaScript ვებ-გვერდში

როცა იტვირთება HTML ფაილი, მისი დახმარებით იტვირთება CSS და JS ფაილები. კოდში შესაძლოა JavaScript ჩაიტვირთოს მანამ სანამ სხვა HTML თეგები ჩაიტვირთება ან ჩაიტვირთოს მას შემდგომ, რაც HTML თეგები ჩაიტვირთა, ეს ყველაფერი დამოკიდებულია იმაზე თუ როგორი შედეგის მიღება გვსურს. ხშირ შემთხვევაში JS დანიშნულება არის დინამიურად შეცვალოს HTML და CSS ვებ-გვერდზე DOM გამოყენებით. ასევე JS საშუალებით შეგვიძლია ინფორმაცია მოვითხოვოთ სერვერიდან და გამოვიტანოთ ისევ JavaScript ის საშუალებით.

კოდის გაშვების თანმიმდევრობა

JavaScript-ის კოდის გაშვების პრინციპი არის მარტივი, კოდი ეშვება ზემოდან ქვემოთ. თუმცა ამ სიმარტივის გამო ხშირ შეთხვევაში კარგად უნდა განვსაზღვროთ თანმიმდევრობა. მაგალითისათვის, თუ შევეცდებით ისეთი ცვლადის ან ფუნქციის გამოყენებას, რომელიც არ არის გამოხადებული იმ კონკრეტულ მომენტამდე შესაძლოა მივიღოთ შეცდომა, არის გამონაკლისი შემთხვევები, როცა ხდება Hoisting-ს პროცესი.

ინტერპრეტირებადი vs დაკომპილირებული კოდი

წინა თავში ნახსენები იყო ინტერპრეტირებადი და დაკომპილირებული კოდის ნაწილი, მოდით განვმარტოთ ისინი თუ რას წარმოადგენს. ინტერპრეტირებადი ენები, კოდს უშვებს ზემოდან ქვემოთ, კოდის შედეგი კი ეგრევე ბრუნდება. არ არის საჭირო კოდის სხვა ფორმით გადაკეთება, რომ ბრაუზერმა კოდი წაიკითხოს. კომპილირებადი ენები კი განსხვავდება ინტერპრეტირებადი ენისაგან იმით, რომ კოდი დაკომპილირებული არის სხვა ფორმით ვიდრე გაუშვებენ მექანიზმში. მაგალითისათვის, C/C++ კოდები დაკომპლირიებული არის მანქანური კოდის ფორმაში და შემდგომ ეშვება კომპიუტერში. მანქანური კოდის ფორმაში კი ამ შემთხვევაში იგუსლიხმება ბინარული ფორმატი, რომელიც ისევ დაგენერირდა მთავარი კოდისაგან. მისი გარჩევა ადამიანისტვის პირდაპირ საკმაოდ რთული ან შეუძლებელი პროცესი არის ხშირ შემთხვევაში.

კლიენტის და სერვერის მხარე კოდები

ხშირად გაიგონებთ ტერმინებს client-side და server-side კოდებს ვებ-დეველოპმენტში. კლიენტის მხარეს კოდი ეს არის კოდი, რომელიც ეშვება მომხარებლის მოწყობილობაზე, როცა გახსნის ვებ-გვერდს, კოდი გადმოიწერება ლოკალურად და გაეშვება ისევ კლიენტის ბრაუზერში, უფრო დეტალურად განხილულია Client-side სტატიაში. სერვერის მხარეს არსებული კოდები, ეშვება სერვერზე და შედეგს პირდაპირ კლიენტის მხარეს გამოიტანს. მსგავსი ტიპის ენები არის: PHP, Python, Ruby, ASP.NET და JavaScript-ც. Node.js-ს წყალობით შესაძლებელი გახდა server-side მხარესაც ვიმუშაოთ JavaScript-ით.

სტატიკური vs დინამიური

სიტყვა დინამიური ხშირად აღწერს კლიენტის და სერვერის მხარესაც JavaScript-ში. სერვერის ენები ხშირ შემთხვევაში ანახლებენ ინფორმაციას და უკვე განახლებულ კონტენტს აბრუნებენ კლიენტის მხარეს, ამ პრინციპის გამოყენებით ვღებულოთ დინამიურ მხარეს სერვერის მხარეს. თუმცა კლიენტის მხარესაც შესაძლებელია დინამიურობის პრინციპის მიღება, მაგალითად: არსებულ სტატიკურ კონტენტს დავუმატოთ ახალი კონტენტი სერვერიდან წამოღბული ინფორმაციის გამოყენებით. სტატიკური ნაწილის იდეა კი იმაში დგომარეობს, რომ ინფორმაცია, რასაც ჩავწერთ HTML მხარეს, წინასაწარ იქნება დაწერილი და მეტწილადად აღარ შეიცვლება, მაგალითად: ვებ-გვერდის აღწერა, ხშირ შემთხვევაში მისი ცვლილება აღარ გვიწევს, ამიტომაც ის ერთჯერადად სტატიკურად დაიწერება.

როგორ დავამატოთ JavaScript ვებ-გვერდზე ?

JavaScript-ს დამატება ვებ-გვერდზე შესაძლებელია იგივე გზით, როგორი გზითაც ემატება CSS, HTML-ში. JavaScript-ის დასამატებლად ვიყენებთ script, თეგს სადაც შეიძლება უკვე კოდის დაწერა ან JavaScript-ის ფაილთან დაკავშირება.

მაგალითები:

Internal მიდგომა (პირდაპირ კოდის დაწერა)

HTML
<script>
  // JavaScript კოდი
</script>

External მიდგომა (ფაილის დაკავშირება, ჩასმა შეიძლება body თეგი გახსნის მერე ან დახურვამდე)

HTML
  <script src="./main.js"></script>
</body>

ორივე მიდგომას თავისი დადებითი და უარყოფითი მხარეები გააჩნია, თუმცა ხშირ შემთხვევაში მისაღები ფორმატი არის External ვერსიის გამოყენება. Internal ვერსიის დროს, შესაძლებელია ბევრი ხაზი მოგვიგროვდეს ისეთი, რომლის გამოყენებაც სამომავლოდ შესაძლებელია გამოგვადგეს, ამიტომაც მისი ცალკე ფაილში შექმნით კოდის დუბლირებას თავს ავარიდებთ. ასევე External ვერსიის დროს, მკაფიოდ ვამჩნევთ JavaScript კოდს, რაც უფრო მარტივ გარემოს ქმნის სამუშაოდ.

კოდის გაშვება

კოდის გასაშვებად უბრალოდ საჭიროა ბრაუზერში გაიხსნას html ფაილი ან მხოლოდ JavaScript-ის runtime-ზე გაშვება. runtime-ზე გასაშვებად საჭიროა: node.js გადმოწერა (LTS ვერსიას გირჩევთ), შემდგომ მარტივად გაშვების მიზნით შესაძლოა დავიხმაროთ ექსთენშენი Code Runner თუ ვიყენებთ vscode-ს, ან ტერმინალში (cmd) გავუშვათ შემდგომი ბრძანება:

SH
node "failis_misamarti/failis_saxeli.js"

კომენტარები

თითქმის ნებისმიერ პროგრამულ ენაში შესაძლებელია კომენტარის გაკეთება. როდესაც კოდი მოთავსებულია კომენტარში ინტერპერატორი ან კომპილატორი, იმ კონკრეტულ კოდს არ წაიკითხავს, ანალოგიურად სრულდება ბრაუზერშიც. თუმცა კომენტარი არამარტო კოდის დასაიგნორებლად, არამედ გამოიყენებაა იმისათვის, რომ აღვწეროთ ჩვენი კოდი თუ რას აკეთებს. მსგავსი ტიპის აღწერით, როცა კოდს დავბრუნდებით გარკვეული დროის შემდგომ უკეთ გავიგებთ თუ კოდის ფრაგმენტი რას ასრულებდა.

მაგალითები:

ერთ ხაზიანი კომენტარი

JS
// console.log('Hello world');

მრავალ ხაზოვანი კომენტარი

JS
/*
  console.log('Hello world');
  console.log('Hello world from Educata');
*/