rest ოპერატორი JavaScript-ში
ამ გაკვეთილს დავიწყებთ გარკვეული განმარტებით.
ამ თავის ყველა წინა გაკვეთილში მე
არ მითხარით მთელი სიმართლე ... ოპერატორზე.
სინამდვილეში ეს ოპერატორი, კოდში მდებარეობიდან გამომდინარე, შეიძლება ეწოდებოდეს ან spread ოპერატორი, ან rest ოპერატორი.
როგორც უკვე იცით, როდესაც spread ოპერატორი
დგას მასივის ან სტრიქონის წინ, ის მათ ყოფს
ცალკეულ მნიშვნელობებად. rest ოპერატორი,
მიუხედავად იმისა, რომ აქვს იგივე სინტაქსი ... სახით,
განკუთვნილია სხვა მიზნისთვის.
ახლა გავარკვევთ, რისთვის. დავუშვათ გვაქვს ფუნქცია, რომელიც იღებს ორ პარამეტრს:
function func(a, b) {
console.log(a);
console.log(b);
}
თქვენ უკვე უნდა იცოდეთ, რომ თუ ფუნქციას გადაეცემა დამატებითი პარამეტრები, ეს არ გამოიწვევს შეცდომას:
func(1, 2, 3, 4, 5);
rest ოპერატორი საშუალებას აძლევს მივიღოთ ყველა
დამატებითი პარამეტრი მასივის სახით. ამისთვის
ფუნქციას ემატება კიდევ ერთი პარამეტრი (აუცილებლად
ბოლო), რომლის წინ იწერება 3 წერტილი:
function func(a, b, ...rest) {
}
ეს სამი წერტილი არის rest ოპერატორი, ხოლო ცვლადის სახელი
შეიძლება ჰქონდეს ნებისმიერი დასახელება, მაგრამ
ჩვეულებრივ მასაც უწოდებენ rest.
გამოვიძახოთ ჩვენი ფუნქცია ზედმეტი
რაოდენობის პარამეტრებით და ვნახოთ, რა მოხვდება
a და b პარამეტრებში, და რა -
დარჩენილ rest-ში:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // გამოიტანს 1-ს
console.log(b); // გამოიტანს 2-ს
console.log(rest); // გამოიტანს [3, 4, 5]-ს
}
თუ დამატებითი პარამეტრები არ იქნება, მაშინ ცვლადში
rest ჩაიწერება ცარიელი მასივი:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // გამოიტანს 1-ს
console.log(b); // გამოიტანს 2-ს
console.log(rest); // გამოიტანს []-ს
}
ფუნქციას შეიძლება საერთოდ არ ჰქონდეს პარამეტრები,
მაგრამ ამავდროულად მასში შეგიძლიათ დაამატოთ rest.
ამ შემთხვევაში ფუნქციის გამოძახება შესაძლებელი იქნება
ნებისმიერი რაოდენობის პარამეტრით და ყველა მათგანი
მოხვდება rest მასივში:
function func(...rest) {
console.log(rest);
}