პროგრამირების საფუძვლები › დამწყები › ფუნქციები
დაბრუნებული მნიშვნელობა
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- როგორ დააბრუნოს ფუნქციამ შედეგი
return-ით - რატომ არ არის
console.logდაreturnერთი და იგივე - რას აბრუნებს ფუნქცია
return-ის გარეშე
ფუნქცია, რომელიც პასუხს გაძლევს
აქამდე ჩვენი ფუნქციები ბეჭდავდა. ხშირად კი ფუნქციისგან პასუხი გვჭირდება, რომ მერე გამოვიყენოთ: შევინახოთ, შევადაროთ, სხვა გამოთვლაში ჩავსვათ. ამისთვის არსებობს return, „დააბრუნე“:
function square(n) {
return n * n;
}
let a = square(4);
console.log(a); // 16
console.log(square(3) + 1); // 10return n * n; ამბობს: „გამოთვალე n * n და ეს მნიშვნელობა დაუბრუნე იმას, ვინც გამომიძახა“. ამიტომ გამოძახება square(4) თვითონ ხდება მნიშვნელობა, 16. ფუნქციის გამოძახება, რომელიც რამეს აბრუნებს, გამოსახულებაა: შეგიძლია ცვლადში შეინახო, მასზე მიუმატო, სხვა ფუნქციას გადასცე.
დაბეჭდვა თუ დაბრუნება
ეს ორი სიტყვა ერთნაირად გამოიყურება, მაგრამ სულ სხვადასხვაა:
function squarePrint(n) {
console.log(n * n);
}
function squareReturn(n) {
return n * n;
}
let x = squarePrint(5); // ეკრანზე იბეჭდება 25
let y = squareReturn(5); // ეკრანზე არაფერი, y-ში 25
console.log(x); // undefined
console.log(y); // 25console.log შედეგს ადამიანს აჩვენებს ეკრანზე, მაგრამ პროგრამას არაფერს აძლევს. return შედეგს პროგრამას აძლევს, მაგრამ ეკრანზე არაფერს წერს. თუ შედეგის შემდგომ გამოყენებას აპირებ, return გჭირდება.
წესი, რომელსაც პროფესიონალებიც მიჰყვებიან: ფუნქციამ, რომელიც რამეს ითვლის, შედეგი დააბრუნოს. დაბეჭდოს იმ კოდმა, რომელმაც ის გამოიძახა.
რატომ? წარმოიდგინე კალკულატორი, რომელიც პასუხს მხოლოდ ხმამაღლა ამბობს, ეკრანზე კი არაფერს აჩვენებს. შემდეგ მოქმედებაში ამ პასუხს ვეღარ გამოიყენებ, ხელახლა უნდა აკრიფო. დაბრუნებული მნიშვნელობა კი ეკრანზე დარჩენილ რიცხვს ჰგავს: შეგიძლია მასზე მიუმატო, გაამრავლო ან სხვა ფუნქციას გადასცე. ასე პატარა ფუნქციები ერთმანეთს ეხმარება.
return ასრულებს ფუნქციას
return-ზე ფუნქცია მაშინვე მთავრდება. მის შემდეგ დაწერილი კოდი აღარ სრულდება. ეს მოსახერხებელია, როცა პასუხი ადრე იცი:
function isEven(n) {
return n % 2 === 0;
}
function sign(n) {
if (n > 0) {
return "დადებითი";
}
if (n < 0) {
return "უარყოფითი";
}
return "ნული";
}
console.log(isEven(10)); // true
console.log(sign(-4)); // უარყოფითიsign-ში else არ გვჭირდება: თუ პირველი პირობა გამართლდა, return ფუნქციას ასრულებს და დანარჩენი ხაზები აღარ მოწმდება.
ფუნქცია return-ის გარეშე
თუ ფუნქციას return არ აქვს, ის მაინც აბრუნებს მნიშვნელობას, undefined-ს. ამიტომ დაიბეჭდა ზემოთ x-ის ნაცვლად undefined. თუ ეკრანზე მოულოდნელად undefined ჩნდება, შეამოწმე, ხომ არ დაგავიწყდა return.
სცადე თავად
გაუშვი, მერე დაამატე ფუნქცია cube(n), რომელიც რიცხვის კუბს აბრუნებს, და დაბეჭდე cube(3).
ხშირი შეცდომები
console.logreturn-ის ნაცვლად. ფუნქცია ეკრანზე სწორ პასუხს წერს, მაგრამlet r = f(2);-შიrარისundefined. დაბრუნებაreturn-ით.- კოდი
return-ის შემდეგ.return x; console.log("მორჩა");მეორე ხაზი არასოდეს შესრულდება. - დაბრუნებული მნიშვნელობის დაკარგვა. ხაზი
square(5);ითვლის 25-ს, მაგრამ არსად ინახავს. შედეგი ცვლადში ჩაწერე ან პირდაპირ გამოიყენე.
სავარჯიშო
დაწერე ფუნქცია toFahrenheit(celsius), რომელიც ცელსიუსს ფარენჰაიტად გადაიყვანს ფორმულით celsius * 9 / 5 + 32 და შედეგს აბრუნებს. დაბეჭდე toFahrenheit(0), toFahrenheit(100) და toFahrenheit(20). უნდა მიიღო 32, 212 და 68.
💡 მინიშნება
ფუნქციის შიგნით ერთი ხაზი: return celsius * 9 / 5 + 32;. ბეჭდვა ფუნქციის გარეთ: console.log(toFahrenheit(0));.
✅ ამოხსნის ნახვა
function toFahrenheit(celsius) {
return celsius * 9 / 5 + 32;
}
console.log(toFahrenheit(0));
console.log(toFahrenheit(100));
console.log(toFahrenheit(20));მინი-ქვიზი
1რას დაბეჭდავს? function double(n) { return n * 2; } console.log(double(4) + 1);
double(4) აბრუნებს 8-ს, მერე 8 + 1.
2რა ინახება r-ში? function f() { console.log(7); } let r = f();
f ბეჭდავს 7-ს, მაგრამ არაფერს აბრუნებს.
3რას დაბეჭდავს test()? function test() { return "ა"; console.log("ბ"); } და console.log(test());
return-ზე ფუნქცია მთავრდება, ამიტომ "ბ" არასოდეს იბეჭდება.
შეჯამება
returnშედეგს აბრუნებს გამოძახების ადგილას. გამოძახება ხდება მნიშვნელობა.console.logადამიანს აჩვენებს,returnპროგრამას აძლევს.return-ზე ფუნქცია მაშინვე მთავრდება.- ფუნქცია
return-ის გარეშეundefined-ს აბრუნებს.