პროგრამირების საფუძვლები › დამწყები › ფუნქციები
ფუნქცია: კოდი სახელით
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- რა არის ფუნქცია (function) და რატომ გვჭირდება
- როგორ შექმნა ფუნქცია და როგორ გამოიძახო
- რა განსხვავებაა ფუნქციის განსაზღვრასა და გამოძახებას შორის
რეცეპტი სახელით
წარმოიდგინე რეცეპტების წიგნი. „ომლეტის“ რეცეპტი ერთხელ წერია, მაგრამ შეგიძლია იმდენჯერ მოამზადო, რამდენჯერაც გინდა: უბრალოდ ამბობ „ომლეტს გავაკეთებ“ და ნაბიჯებს მიჰყვები. ყოველ ჯერზე რეცეპტის თავიდან დაწერა არ გჭირდება.
ფუნქცია (function) პროგრამის რეცეპტია: კოდის ბლოკი, რომელსაც სახელი აქვს. ერთხელ წერ, მერე სახელით იძახებ ნებისმიერ ადგილას და ნებისმიერ რაოდენობაჯერ.
function greet() {
console.log("გამარჯობა!");
console.log("კეთილი იყოს შენი მობრძანება CodeQuest-ში.");
}
greet();
greet();- სიტყვა
functionამბობს: „ახლა ფუნქციას ვქმნი“. greetფუნქციის სახელია. სახელს ცვლადის სახელის წესები მოქმედებს: ინგლისური ასოები, camelCase, ინტერვალის გარეშე.- მრგვალი ფრჩხილები
()სავალდებულოა. შემდეგ თავში ნახავ, რა შეიძლება მათში ჩაიწეროს. - ფიგურულ ფრჩხილებში ფუნქციის სხეულია (body): კოდი, რომელიც გამოძახებისას სრულდება.
greet();ფუნქციას იძახებს (call). ორი გამოძახება ნიშნავს, რომ ორივე ხაზი ორჯერ დაიბეჭდება.
განსაზღვრა და გამოძახება
ფუნქციის განსაზღვრა (definition) მხოლოდ რეცეპტის ჩაწერაა: ამ დროს მისი სხეული არ სრულდება. თუ ზემოთ მოყვანილ მაგალითში greet(); ხაზებს წაშლი, პროგრამა არაფერს დაბეჭდავს, თუმცა ფუნქცია არსებობს.
კოდი მხოლოდ გამოძახებისას სრულდება. ამ დროს კომპიუტერი „ხტება“ ფუნქციის სხეულში, ასრულებს მას თავიდან ბოლომდე და ბრუნდება იმ ადგილას, საიდანაც გამოიძახეს, რომ შემდეგი ხაზით გააგრძელოს.
ფუნქციები, რომლებიც უკვე იცი
ფუნქციებს ამ კურსის დასაწყისიდან იყენებ: console.log(...), Number(...), String(...). ეს ფუნქციები ენაში უკვე ჩაშენებულია და ვიღაცამ შენ მაგივრად დაწერა. ფრჩხილები სახელის შემდეგ ყოველთვის ნიშნავს: „ახლა ეს ფუნქცია შეასრულე“.
რატომ ფუნქციები
- არ იმეორებ ერთსა და იმავეს. ხუთ ადგილას საჭირო კოდი ერთხელ იწერება.
- ერთ ადგილას ცვლი. თუ მისალმება უნდა შეიცვალოს, ცვლი მხოლოდ ფუნქციას და ცვლილება ყველგან ჩანს.
- კოდი იკითხება.
drawBoard();checkWinner();თითქმის ჩვეულებრივი წინადადებებივით იკითხება, თუნდაც შიგნით ოცი ხაზი იყოს.
ფუნქციას სახელად ზმნა დაარქვი, რომელიც ამბობს, რას აკეთებს: printMenu, countStars, showScore.
სცადე თავად
გაუშვი, მერე დაამატე მესამე გამოძახება და შეცვალე ფუნქციის სხეული.
ხშირი შეცდომები
- ფრჩხილების გარეშე გამოძახება.
greet;ფუნქციას არ იძახებს: ის უბრალოდ ფუნქციის სახელს ახსენებს და არაფერი ხდება. გამოძახებას ფრჩხილები სჭირდება:greet();. - სახელში შეცდომა.
gret();იძლევაReferenceError: gret is not defined. სახელი განსაზღვრაში და გამოძახებაში ზუსტად ერთნაირი უნდა იყოს, დიდი და პატარა ასოების ჩათვლით. - ფუნქცია, რომელიც არასოდეს იძახება. თუ ფუნქცია დაწერე და პროგრამა არაფერს აკეთებს, შეამოწმე, გამოიძახე თუ არა.
სავარჯიშო
დაწერე ფუნქცია printBorder, რომელიც ბეჭდავს ვარსკვლავების ხაზს **********. გამოიძახე ის შენი სახელის ზემოთ და ქვემოთ, რომ სახელი „ჩარჩოში“ მოექცეს.
💡 მინიშნება
ჯერ განსაზღვრე ფუნქცია, მერე დაწერე სამი ხაზი: printBorder();, console.log("შენი სახელი");, printBorder();.
✅ ამოხსნის ნახვა
function printBorder() {
console.log("**********");
}
printBorder();
console.log("ნინო");
printBorder();მინი-ქვიზი
1რა მოხდება, თუ ფუნქცია განსაზღვრე, მაგრამ არ გამოიძახე?
განსაზღვრა მხოლოდ „რეცეპტის ჩაწერაა“.
2რომელი ხაზი იძახებს ფუნქციას showScore?
გამოძახებას ფრჩხილები სჭირდება.
3რამდენჯერ დაიბეჭდება „ჰეი“? function hi() { console.log("ჰეი"); } hi(); hi(); hi();
სამი გამოძახება ნიშნავს სამ შესრულებას.
შეჯამება
- ფუნქცია სახელიანი კოდის ბლოკია:
function name() { ... }. - განსაზღვრა კოდს არ ასრულებს. ის სრულდება გამოძახებისას:
name();. - ფუნქციები გიცავს გამეორებისგან, ცვლილებას ერთ ადგილას ახერხებ და კოდი უკეთ იკითხება.
- ფუნქციას ზმნით დაარქვი სახელი.