20-блог: JavaScript даўамы: Функция дегенимиз не? 3-бөлим
Бүгинги блогымызда JavaScript тилинде функциялар не екени ҳаққында түсиндиремен. Инглизшесине, function деп атайды. Python, C++, Kotlin ҳәм басқа бағдарламаластырыў тиллеринде де функциялар бар. Жазыў усылы басқаша болыўы мүмкин, мәниси дерлик бирдей.
Демек, функция дегенимиз не?
Функциялар бул ҳәр қандай бағдарламаластырыў тилиниң, соның менен бирге JavaScript тилиниң ең тийкарғы фундаментлеринен бири.
Функция бул бир неше көрсетпелерден қуралып, белгили бир тапсырманы орынлаў ушын жазылады. Олар жазылған кoудты адеўир уйымластырып, қайта қолланыў мүмкиншилигин жаратaды.
Оларды мини-бағдарлама десек те болады. Үлкен программаның ишиндеги өз алдына тапсырманы орынлап бериўши кишкене-кишкене программалардай гәп. Усылай бир қанша (жүзлеген, мыңлаған) функциялар жыйналып үлкен бир программаны жаратaды.
Әлбетте, булай түсиндирсең ҳеш ким бирден уғып кетпейди.
Мысал менен түсиндирейик.
Тек сәлемлесип билетүғын программа жаратпақшымыз. Онда көзимизди жумып отырып жаза алады екенбиз.
Бул программaда тек бир функция болады. Усы функцияны JavaScript тилинде жазып көрейик.
function greet() {
console.log("Salem!");
}Яки, ҳошласатүғын программа жазып көрейик.
function sayGoodbye() {
console.log("Goodbye!");
}Бир функциядан ибәрaт болса да, өз алдына программа болыўы мүмкин.
Функцияларды қaлай мәлимлеймиз?
JavaScript тилинде функцияларды жәриялаўдың бир қанша усылы бар.
1. function деген гилит сөзден пайдалaнамыз
JavaScript тилинде функциялар көбинесе function деп аталатуғын гилит сөзден басланып жазылады. Әлбетте, function деген сөзден кейин сол функцияның аты ҳәм қаўсырма қойылыўы керек.
function greet() {
console.log("Сәлем!!!");
}Яки, майданды есеплайтүғын функция жазып көрейик. Мектепте геометрия сабағында майданды қaлай есаплаўды үйренгениңиз ядыңызда шығар.
function calculateArea(width, height) {
return width * height;
}Бул жерде, width менен height төрт тәрепли жердиң енине ҳәм кесесине узынлығын билдиреди. Екеўинин көбеймеси майданға тен.
2. const деген гилит сөз арқалы мәлимлеймиз
const бул JavaScript тилинде айныўшы (variable) жариялағанда/жаратқанда қолланылатуғын гилит сөз есапланады. let деген гилит сөзден де пайдаланып айныўшыны жариялай алатуғынымызды алдыңғы блогларда үйренген едик.
let name = "Гүлайым";
let age = 38;const деген гилит сөз арқалы айныўшыны жариялаўдың бир себеби – ол сол айныўшының кейиншелик мәниси өзгермейтуғынын белгилеў болып есапланады. const сөзинин мәниси бул турақлы.
Демек, турақлы мәнислерди жариялағанда қолланамыз.
Жоқарыдағы name, age деген мәнислер өзгериўи мүмкин. Бирақ, Нөкис деген пайтахт қаланың аты, 360 градус деген мәнис, яки 100 градус деген температура өзгермейди. Яки, сиз мәниси турақлы болады деп анықлаған айныўшылардың мәниси өзгермеўи мүмкин.
Тап сондай майданды есеплайтүғын яки сәлемлесетүғын функция да өзгере бермейди.
Сол функцияны жәриялап, бир айныўшының ишине жайғастырамыз.
const greet = function() {
console.log("Salem!");
};const calculateArea = function(width, height) {
return width * height;
}Көрип турғаныңыздай, бир функцияны еки түрли жол менен жаза алдық.
function greet() {
console.log("Сәлем!");
}const greet = function() {
console.log("Salem!");
};Екеўи де бирдей. Қайсы биринен пайдаланыў бул өз қәлеўиңизге (ҳәм зәрурлигиңизге) байланыслы.
Функцияларды қaлай иcке қосамыз?
Функцияны әмелге асырыў жудә аңсат. Сол функцияның атын жазып, изинен қаўсырманы жазсақ болды.
Мәселен:
greet();
// Нәтийжеси: Salem!
sayGoodbye();
// Нәтийжеси: Goodbye!Бирақ жоқарыдағы майданды есаплаў функциясын қaлай иске қосамыз? Ол функцияны жоқарыдағыдай етип иске қоссақ қате келтирип шығарады.
Параметрин де қосып жазың деп айтады. calculateArea функциясы параметр қaбыл ететүғын функция есапланады.
Функция параметрлери дегенимиз не?
Функцияларда қаўсырманын ишине жазыў керек болған мәнисти параметр деп есаплайды.
Мәселен, майданды есаплаў деген функциямыз бар. Бирақ, ол "аспаннан алып" майданды есаплап бере алмайды.
Майданды есаплаў ушын майданның енине, кесесине узынлығын билиў зәрур. Сол еки мәнисти қосып, функцияның қаўсырмасына жазамыз.
calculateArea(100, 160)
Функцияны иске қосып, 16 000 деген жуўапты аламыз. Егер, енине 100 метр, кесесине 160 метр болса, сол жердин майданы 16 000 метр квадрат болады.
Функциядағы return гилит сөзи бул не?
return бул инглизше сөз болып, қарақалпақшасына мәниси "қайтарыў, қайтыў, жеткериў" болады. Python тилинде де return термининен пайдаланады. Дерлик, көпшилик бағдарламаластырыў тиллеринде return термини бар.
return бул "stop", яғный компьютерге "қылып атырған жумысыңды тоқтат" деген мәнисти береди.
Компьютер программаны иске қосқаннан кейин, оны қашан тоқтатыў керек екенин билмейди. Яды толаман дегенше ислеўи мүмкин. Усы ўақытта компьютерге "алғaн натийжеңди көрсетип, жумысты тоқтат" деген көрсетпе бериў керек болады.
Усы көрсетпени return деген гәп (statement) пенен жеткере аламыз.
Майданды есаплаў функциясында да майданды есаплап болғаннан кейин натийжени қайтарып, функцияны тоқтат деген буйрықты берыў ушын return деген гилит сөзден пайдаланып атырмыз.
const calculateArea = function(width, height) {
return width * height;
}Мәселен, төмендегидей еки санды қосатуғын функцияны жазып көрейик.
a ҳәм b санларын қосып болып, қосындыны sum деген айныўшының (variable) ишинде сақлайық.
Кейин оны console.log() менен экранға шығарамыз.
function add(a, b) {
return a + b;
}
let sum = add(5, 3);
console.log(sum);
// Нәтийжеси: 8Төменде функциялар туўралы бир қанша мысаллар келтирип өттим.
1. Атыңызды айтып, сәлемлесетүғын мини-программа
function greetUser(name) {
console.log("Hello, " + name + "!");
}Функцияны иске қосыў:
greetUser("Azamat");
// Нәтийжеси: Salem, Azamat!
greetUser("Qumar");
// Нәтийжеси: Salem, Qumar!2. Жуп санба, тақ санба анықлайтуғын функция
function checkEvenOdd(number) {
if (number % 2 === 0) {
console.log(number + " жуп сан есапланады.");
} else {
console.log(number + " тақ сан есапланады.");
}
}Функцияны иске қосыў:
checkEvenOdd(4);
// Нәтийжеси: 4 жуп сан есапланады.
checkEvenOdd(7);
// Нәтийжеси: 7 тақ сан есапланады.3. Еки санның ишинде қайсысы үлкенин анықлайтуғын функция
function findMax(a, b) {
if (a > b) {
return a;
} else {
return b;
}
}
let maxNumber = findMax(10, 20);
console.log("The maximum number is " + maxNumber);
// Нәтийжеси: The maximum number is 20




