შესვლა

პროგრამირების საფუძვლები › დამწყები › ფუნქციები

ფუნქცია: კოდი სახელით

მარტივი⏱ 6 წთ+20 XP👑 Pro#ფუნქციები#function#გამოძახება

რას ისწავლი

  • რა არის ფუნქცია (function) და რატომ გვჭირდება
  • როგორ შექმნა ფუნქცია და როგორ გამოიძახო
  • რა განსხვავებაა ფუნქციის განსაზღვრასა და გამოძახებას შორის

რეცეპტი სახელით

წარმოიდგინე რეცეპტების წიგნი. „ომლეტის“ რეცეპტი ერთხელ წერია, მაგრამ შეგიძლია იმდენჯერ მოამზადო, რამდენჯერაც გინდა: უბრალოდ ამბობ „ომლეტს გავაკეთებ“ და ნაბიჯებს მიჰყვები. ყოველ ჯერზე რეცეპტის თავიდან დაწერა არ გჭირდება.

ფუნქცია (function) პროგრამის რეცეპტია: კოდის ბლოკი, რომელსაც სახელი აქვს. ერთხელ წერ, მერე სახელით იძახებ ნებისმიერ ადგილას და ნებისმიერ რაოდენობაჯერ.

JavaScript
function greet() {
  console.log("გამარჯობა!");
  console.log("კეთილი იყოს შენი მობრძანება CodeQuest-ში.");
}

greet();
greet();
  1. სიტყვა function ამბობს: „ახლა ფუნქციას ვქმნი“.
  2. greet ფუნქციის სახელია. სახელს ცვლადის სახელის წესები მოქმედებს: ინგლისური ასოები, camelCase, ინტერვალის გარეშე.
  3. მრგვალი ფრჩხილები () სავალდებულოა. შემდეგ თავში ნახავ, რა შეიძლება მათში ჩაიწეროს.
  4. ფიგურულ ფრჩხილებში ფუნქციის სხეულია (body): კოდი, რომელიც გამოძახებისას სრულდება.
  5. greet(); ფუნქციას იძახებს (call). ორი გამოძახება ნიშნავს, რომ ორივე ხაზი ორჯერ დაიბეჭდება.

განსაზღვრა და გამოძახება

ფუნქციის განსაზღვრა (definition) მხოლოდ რეცეპტის ჩაწერაა: ამ დროს მისი სხეული არ სრულდება. თუ ზემოთ მოყვანილ მაგალითში greet(); ხაზებს წაშლი, პროგრამა არაფერს დაბეჭდავს, თუმცა ფუნქცია არსებობს.

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

ფუნქციები, რომლებიც უკვე იცი

ფუნქციებს ამ კურსის დასაწყისიდან იყენებ: console.log(...), Number(...), String(...). ეს ფუნქციები ენაში უკვე ჩაშენებულია და ვიღაცამ შენ მაგივრად დაწერა. ფრჩხილები სახელის შემდეგ ყოველთვის ნიშნავს: „ახლა ეს ფუნქცია შეასრულე“.

რატომ ფუნქციები

  • არ იმეორებ ერთსა და იმავეს. ხუთ ადგილას საჭირო კოდი ერთხელ იწერება.
  • ერთ ადგილას ცვლი. თუ მისალმება უნდა შეიცვალოს, ცვლი მხოლოდ ფუნქციას და ცვლილება ყველგან ჩანს.
  • კოდი იკითხება. drawBoard(); checkWinner(); თითქმის ჩვეულებრივი წინადადებებივით იკითხება, თუნდაც შიგნით ოცი ხაზი იყოს.

ფუნქციას სახელად ზმნა დაარქვი, რომელიც ამბობს, რას აკეთებს: printMenu, countStars, showScore.

სცადე თავად

გაუშვი, მერე დაამატე მესამე გამოძახება და შეცვალე ფუნქციის სხეული.

JavaScript · სცადე თავად

ხშირი შეცდომები

  • ფრჩხილების გარეშე გამოძახება. greet; ფუნქციას არ იძახებს: ის უბრალოდ ფუნქციის სახელს ახსენებს და არაფერი ხდება. გამოძახებას ფრჩხილები სჭირდება: greet();.
  • სახელში შეცდომა. gret(); იძლევა ReferenceError: gret is not defined. სახელი განსაზღვრაში და გამოძახებაში ზუსტად ერთნაირი უნდა იყოს, დიდი და პატარა ასოების ჩათვლით.
  • ფუნქცია, რომელიც არასოდეს იძახება. თუ ფუნქცია დაწერე და პროგრამა არაფერს აკეთებს, შეამოწმე, გამოიძახე თუ არა.

სავარჯიშო

დაწერე ფუნქცია printBorder, რომელიც ბეჭდავს ვარსკვლავების ხაზს **********. გამოიძახე ის შენი სახელის ზემოთ და ქვემოთ, რომ სახელი „ჩარჩოში“ მოექცეს.

JavaScript · სცადე თავად
💡 მინიშნება

ჯერ განსაზღვრე ფუნქცია, მერე დაწერე სამი ხაზი: printBorder();, console.log("შენი სახელი");, printBorder();.

✅ ამოხსნის ნახვა
JavaScript
function printBorder() {
  console.log("**********");
}

printBorder();
console.log("ნინო");
printBorder();

მინი-ქვიზი

1რა მოხდება, თუ ფუნქცია განსაზღვრე, მაგრამ არ გამოიძახე?

2რომელი ხაზი იძახებს ფუნქციას showScore?

3რამდენჯერ დაიბეჭდება „ჰეი“? function hi() { console.log("ჰეი"); } hi(); hi(); hi();

შეჯამება

  • ფუნქცია სახელიანი კოდის ბლოკია: function name() { ... }.
  • განსაზღვრა კოდს არ ასრულებს. ის სრულდება გამოძახებისას: name();.
  • ფუნქციები გიცავს გამეორებისგან, ცვლილებას ერთ ადგილას ახერხებ და კოდი უკეთ იკითხება.
  • ფუნქციას ზმნით დაარქვი სახელი.
📝 ჩემი შენიშვნა