JavaScript Functions తెలుగులో | function, parameters, return

🟨 JavaScript (ES2026+) 🟢 Lesson 12 📂 Part 03: Functions & Data 📅 2026 Edition
📌 Covered in this lesson: Function declaration · Parameters & arguments · return keyword · Default parameters · Function expression · Hoisting preview · Scope preview · Common mistakes · Interactive Quiz

☕ చాయ్ తయారీ విధానం (Recipe) మరియు Functions

ఇంట్లో చాయ్ తయారు చేయడానికి ఒక విధానం (recipe) ఉంటుంది: నీళ్లు మరిగించు, పాలు, చక్కెర, టీ పొడి వేయి, వడకట్టు. ప్రతిసారీ ఈ విధానాన్ని మళ్ళీ మళ్ళీ రాయరు కదా? "చాయ్ చెయ్యి" అని చెబితే చాలు, ఆ విధానం అంతా జరిగిపోతుంది. ఇంకా, ఎంతమందికి కావాలో (ingredients) మార్చి చెబితే, అదే విధానంతో ఎన్ని కప్పులైనా తయారవుతాయి.

Programming లో ఇలా ఒక పనికి సంబంధించిన code ని ఒక పేరు పెట్టి, ఎన్ని సార్లైనా వాడుకునే ఏర్పాటునే Function అంటారు. ఒకే code ని 10 చోట్ల కాపీ చేసి రాయాల్సిన అవసరం లేదు. ఒక్కసారి function గా రాసి, పేరు చెప్పి వాడుకుంటే చాలు (దీనినే DRY — Don't Repeat Yourself ప్రిన్సిపల్ అంటారు).

ఇప్పటికే మీరు functions ని వాడుతున్నారు: console.log(), Number(), parseInt() ఇవన్నీ JavaScript అందించే ఇన్-బిల్ట్ functions. ఈ chapter లో మీ సొంత functions రాయడం నేర్చుకుందాం.

1ఈ chapter లో మీరు నేర్చుకునేవి
  • Function అంటే ఏమిటి, ఎందుకు కావాలి?
  • Function ని declare చేయడం మరియు call చేయడం
  • Parameters మరియు arguments మధ్య ఉన్న తేడా
  • return తో విలువను తిరిగి ఇవ్వడం & return తో function ఆగిపోవడం
  • Default parameters (డిఫాల్ట్ విలువలు)
  • Function expression మరియు Hoisting (ముందే వాడగలమా?)
  • Function లోపలి variables (Scope కి చిన్న పరిచయం)
  • Beginners చేసే 6 సాధారణ తప్పులు (Real Node.js error outputs తో)
  • సమగ్ర ప్రాక్టీస్ ప్రశ్నలు & సమాధానాలు
  • 🧠 ఇంటరాక్టివ్ క్విజ్ (Interactive Telugu Quiz)
2Function ఎందుకు కావాలి?

ఒకే message ని చాలా చోట్ల print చేయాలనుకోండి. Function లేకపోతే ప్రతిచోటా అదే code రాయాలి. Function తో:

JavaScript — Simple Function ▶ Run Code
function greet() {
  console.log("నమస్కారం!");
}

greet();
greet();
Output:
నమస్కారం!
నమస్కారం!

Code పరిశీలన: ఒక్కసారి రాశాం, రెండుసార్లు వాడాం. రేపు message మార్చాలంటే ఒక్క చోట మార్చితే చాలు, అన్ని చోట్లా మారిపోతుంది. ఇదే function శక్తి!

3Function ని declare చేయడం మరియు call చేయడం

Function syntax చాలా సూటిగా ఉంటుంది:

JavaScript — Syntax
function functionName(parameters) {
  // function body: చేయాల్సిన పని
}

Function వాడకంలో రెండు ప్రధాన దశలు ఉంటాయి:

  1. 1. Declare (నిర్వచించడం): Function ని తయారు చేయడం. ఇది చాయ్ తయారీ విధానాన్ని పుస్తకంలో రాసి పెట్టడం లాంటిది. ఈ దశలో లోపల ఉన్న code అసలు run అవ్వదు.
  2. 2. Call (పిలవడం / Invoke): Function పేరు తర్వాత () రాసి పిలిస్తే, అప్పుడు మాత్రమే అందులోని code run అవుతుంది.

పై ఉదాహరణలో:
• function greet() { ... } ← declare చేశాం (చాయ్ విధానం రాశాం).
• greet(); ← call చేశాం (చాయ్ చెయ్యి అన్నాం). రెండుసార్లు call చేశాం కాబట్టి రెండుసార్లు run అయ్యింది.

Function పేర్లు ఎలా పెట్టాలి?

Variables కి వర్తించే నియమాలే functions కి కూడా వర్తిస్తాయి (Chapter 3). అదనంగా:

  • camelCase వాడండి: calculateTotal, isEven.
  • Function ఒక పని చేస్తుంది కాబట్టి, పేరు సాధారణంగా క్రియ (verb) తో మొదలవ్వాలి: greet, getPrice, calculateTax.
  • true లేదా false ఇచ్చే functions కి is లేదా has తో మొదలుపెట్టడం మంచి సంప్రదాయం: isEven, hasTicket.
4Parameters: function కి విలువలు ఇవ్వడం

Function ప్రతిసారీ ఒకే పని చేస్తే ప్రయోజనం తక్కువ. చాయ్ లో "ఎన్ని కప్పులు?" అని మార్చినట్లు, function కి విలువలు పంపించి, వాటిని బట్టి వేర్వేరు ఫలితాలు రాబట్టొచ్చు.

JavaScript — Parameters Example ▶ Run Code
function greetUser(name) {
  console.log(`నమస్కారం ${name}!`);
}

greetUser("రవి");
greetUser("సీత");
Output:
నమస్కారం రవి!
నమస్కారం సీత!

Parameters vs Arguments

ఈ రెండు పదాలు విద్యార్థులను తరచూ గందరగోళానికి గురిచేస్తాయి. తేడా చాలా సులభం:

పదం (Term) అర్థం (Meaning) ఉదాహరణలో
Parameter Function ని declare చేసేటప్పుడు ( ) లో రాసే పేరు. ఇది ఒక ఖాళీ డబ్బా లాంటిది. name (function greetUser(name) లో)
Argument Function ని call చేసేటప్పుడు పంపే నిజమైన విలువ. "రవి", "సీత" (greetUser("రవి") లో)

greetUser("రవి") అన్నప్పుడు, "రవి" అనే argument, name అనే parameter డబ్బాలో కూర్చుంటుంది. Function లోపల name ని మామూలు variable లాగా వాడొచ్చు.

5return: విలువను తిరిగి ఇవ్వడం

ఇప్పటివరకు functions కేవలం screen మీద print చేశాయి. కానీ చాలాసార్లు function ఒక ఫలితాన్ని తిరిగి ఇవ్వాలి, దాన్ని మనం వేరే చోట వాడుకోవడానికి. దానికి return వాడతాం. చాయ్ విధానం చివర తయారైన చాయ్ ని మన చేతికి ఇవ్వడం లాంటిది.

JavaScript — return Value ▶ Run Code
function add(a, b) {
  return a + b;
}

const sum = add(10, 20);
console.log(sum);
console.log(add(5, 7));
Output:
30
12

Code అర్థం చేసుకుందాం:

  1. add(a, b) కి రెండు parameters ఉన్నాయి. కామాతో వేరు చేసి ఎన్నైనా రాయొచ్చు.
  2. return a + b; అంటే "a + b విలువను తిరిగి ఇవ్వు".
  3. add(10, 20) అని call చేస్తే, ఆ expression స్థానంలో 30 వచ్చి కూర్చుంటుంది. అందుకే const sum = add(10, 20) అంటే const sum = 30.
  4. తిరిగి వచ్చిన విలువను variable లో దాచొచ్చు (sum), నేరుగా print చేయొచ్చు (console.log(add(5, 7))), లేదా మరో లెక్కలో వాడొచ్చు.

return తో function ఆగిపోతుంది

return కనిపించగానే function అక్కడితో ముగుస్తుంది. దాని కింద ఉన్న code ఏదీ run అవ్వదు.

JavaScript — return Stops Execution ▶ Run Code
function test() {
  console.log("A");
  return;
  console.log("B");
}

test();
Output:
A

"B" రాలేదు, ఎందుకంటే return తర్వాత ఉన్న code ఎప్పటికీ run అవ్వదు (దీనినే Unreachable Code అంటారు).

ఈ లక్షణాన్ని if తో కలిపి వాడటం (Early Return Pattern):

JavaScript — Guard Clauses / Early Return ▶ Run Code
function check(n) {
  if (n > 0) {
    return "positive";
  }
  return "not positive";
}

console.log(check(5));
console.log(check(-2));
Output:
positive
not positive

n = 5 అయితే మొదటి return తో function ముగుస్తుంది, రెండో return వరకు రాదు. else రాయాల్సిన అవసరం కూడా లేకుండా పోయింది!

Return లేని function

return రాయని function ఫలితంగా undefined ఇస్తుంది.

JavaScript — No return gives undefined ▶ Run Code
function sayHi() {
  console.log("Hi");
}

const r = sayHi();
console.log(r);
Output:
Hi
undefined

sayHi() screen మీద "Hi" print చేసింది (అది దాని పని), కానీ తిరిగి ఇవ్వడానికి ఏమీ లేదు, అందుకే r లో undefined ఉంది.

💡 print చేయడం (console.log) vs return చేయడం

కొత్తవారికి ఇది పెద్ద గందరగోళం. తేడా ఇది:
• console.log: మనకు (developer కి) screen మీద చూపిస్తుంది. ఆ విలువను program లో మళ్ళీ వాడుకోలేం.
• return: విలువను program కి తిరిగి ఇస్తుంది. దాన్ని variable లో దాచొచ్చు, ఇతర గణనలకు (calculations) వాడొచ్చు.
సాధారణంగా లెక్కలు చేసే functions return చేయాలి, print చేయడం వేరే చోట చూసుకోవాలి.

6వాస్తవ ఉదాహరణలు (Real-World Examples)

ఉదాహరణ 1: సరి సంఖ్యా కాదా? (isEven)

JavaScript — isEven Function ▶ Run Code
function isEven(n) {
  return n % 2 === 0;
}

console.log(isEven(10));
console.log(isEven(7));
Output:
true
false

n % 2 === 0 అనేది ఇప్పటికే true లేదా false ఇస్తుంది. దాన్ని నేరుగా return చేసేశాం!

ఉదాహరణ 2: GST తో కలిపిన మొత్తం (calculateTotal)

JavaScript — Billing with Tax ▶ Run Code
function calculateTotal(price, gstPercent) {
  const gst = price * gstPercent / 100;
  return price + gst;
}

console.log(calculateTotal(1000, 18));
Output:
1180

₹1000 కి 18% GST = ₹180. కలిపి ₹1180. వేరే ధర, వేరే GST తో ఎన్ని సార్లైనా ఇదే function ని వాడొచ్చు.

ఉదాహరణ 3: ఒక function నుంచి ఇంకో function ని పిలవడం (Modularity)

JavaScript — Function Composition ▶ Run Code
function square(n) {
  return n * n;
}

function sumOfSquares(a, b) {
  return square(a) + square(b);
}

console.log(sumOfSquares(3, 4));
Output:
25

square(3) = 9, square(4) = 16, కలిపి 25. పెద్ద పనిని చిన్న చిన్న functions గా విడగొట్టడం ఒక గొప్ప సాఫ్ట్‌వేర్ ఇంజనీరింగ్ అలవాటు. ప్రతి function ఒక్క పనిని మాత్రమే పరిపూర్ణంగా చేయాలి!

7Default Parameters (డిఫాల్ట్ పారామీటర్లు)

Argument ఇవ్వకపోతే ఒక డిఫాల్ట్ విలువ వాడాలనుకుంటే, parameter పక్కన = తో రాస్తాం:

JavaScript — Default Parameters ▶ Run Code
function greet(name = "అతిథి") {
  console.log(`నమస్కారం ${name}!`);
}

greet();
greet("రవి");
Output:
నమస్కారం అతిథి!
నమస్కారం రవి!

greet() లో argument ఇవ్వలేదు కాబట్టి name లో డిఫాల్ట్ విలువ అయిన "అతిథి" వచ్చింది. greet("రవి") లో ఇచ్చిన విలువను ప్రాధాన్యతతో వాడింది.

8Function Expression & Hoisting

ఇప్పటివరకు మనం రాసినది function declaration (function పేరు() {}). ఇంకో పద్ధతి function expression: function ని ఒక variable లో దాచడం.

JavaScript — Function Expression ▶ Run Code
const multiply = function (a, b) {
  return a * b;
};

console.log(multiply(4, 5));
Output:
20

ఇక్కడ function కి పేరు లేదు (Anonymous Function). అది multiply అనే variable లో కూర్చుంది, ఆ variable పేరుతోనే call చేస్తున్నాం. చివరలో ; ఉందని గమనించండి (ఎందుకంటే ఇది ఒక variable assignment). Chapter 13 లో దీనికే చిన్న ఆధునిక రూపమైన Arrow Functions నేర్చుకుంటాం.

Hoisting: ముందే వాడగలిగేది

Function declaration ని, దాన్ని రాసిన చోటుకి ముందే call చేయొచ్చు. JavaScript code ని run చేసే ముందు declarations ని పైకి "ఎత్తి" పెడుతుంది. దీన్నే hoisting అంటారు.

JavaScript — Hoisting with Declaration ▶ Run Code
console.log(square(4));

function square(n) {
  return n * n;
}
Output:
16

కానీ function expression తో ఇది పని చేయదు:

JavaScript — Expression Hoisting Error
console.log(cube(3));

const cube = function (n) {
  return n ** 3;
};
Output:
ReferenceError: Cannot access 'cube' before initialization

కాబట్టి function expression ని ఎప్పుడూ వాడటానికి ముందే రాయండి. Hoisting గురించి Chapter 24 లో మరింత వివరంగా నేర్చుకుందాం.

9Function లోపలి variables: చిన్న పరిచయం (Scope)

Function లోపల declare చేసిన variables, ఆ function లోపల మాత్రమే కనిపిస్తాయి. బయట వాడలేం.

JavaScript — Local Scope
function f() {
  const secret = 10;
}

f();
console.log(secret);
Output:
ReferenceError: secret is not defined

ఇది ఒక ఇంటి లోపల ఉన్న వస్తువులు ఇంటి బయట రోడ్డు మీద నుంచి కనిపించనట్లు. దీన్నే scope అంటారు. Chapter 24 లో వివరంగా తెలుసుకుందాం. ఇప్పటికి "function లోపలి variable బయటకు కనిపించదు" అని గుర్తుంచుకోండి. కావాల్సిన విలువను return తో బయటకు పంపండి.

⚠️ Beginners చేసే 6 సాధారణ తప్పులు (Common Mistakes)

1. return రాయడం మర్చిపోవడం:

function add(a, b) {
  a + b;
}
console.log(add(2, 3));
Output: undefined

5 రావాలి, కానీ undefined వచ్చింది. a + b ని లెక్కించింది, కానీ ఎక్కడికీ తిరిగి ఇవ్వలేదు. return a + b; అని రాయాలి.

2. Function ని () లేకుండా రాయడం:

function greet() {
  console.log("నమస్కారం!");
}
greet;

ఇది ఏమీ చేయదు. greet అని మాత్రమే రాస్తే function ని "చూస్తుంది", కానీ పిలవదు (call చేయదు). typeof greet అడిగితే "function" అని వస్తుంది. పిలవాలంటే greet(); అని కుండలీకరణాలు తప్పనిసరి!

3. Function expression ని declare చేయకముందే వాడటం:

పైన చూసినట్లు ReferenceError: Cannot access 'cube' before initialization వస్తుంది. Expression ని ఎల్లప్పుడూ వాడటానికి ముందు రాయండి.

4. Arguments సంఖ్య తప్పుగా ఇవ్వడం:

function add(a, b) {
  return a + b;
}
console.log(add(5));
console.log(add(5, 10, 20));
Output:
NaN
15

add(5) లో b కి ఏ విలువా రాలేదు, కాబట్టి b ఒక undefined. 5 + undefined అంటే NaN.
add(5, 10, 20) లో అదనంగా ఇచ్చిన 20 ని ఏ parameter తీసుకోలేదు, కాబట్టి పట్టించుకోకుండా వదిలేసింది (error ఇవ్వదు).

5. Arguments క్రమం తప్పుగా ఇవ్వడం:

function subtract(a, b) {
  return a - b;
}
console.log(subtract(3, 10));
console.log(subtract(10, 3));
Output:
-7
7

Arguments ని parameters వరుస క్రమంలోనే (మొదటిది మొదటి దానికి, రెండోది రెండో దానికి) ఇస్తుంది. క్రమం మారితే ఫలితం తారుమారవుతుంది.

6. return తర్వాత code రాయడం:

return తర్వాత ఉన్న code ఎప్పటికీ run అవ్వదు (పైన test() ఉదాహరణ చూశాం). అది పొరపాటున ఉంటే మనకు తెలియకుండా డెడ్ కోడ్ గా మిగిలిపోతుంది.

10ప్రాక్టీస్ ప్రశ్నలు & సమాధానాలు
  1. వృత్తం వ్యాసార్థం (radius) ఇస్తే దాని వైశాల్యం ఇచ్చే function రాయండి. (వైశాల్యం = π × r × r. Math.PI వాడండి.) radius 5 తో call చేయండి.
  2. రెండు సంఖ్యల్లో పెద్దదాన్ని return చేసే maxOfTwo function రాయండి. (15, 42 తో test చేయండి)
  3. ఒక సంఖ్య palindrome అవునా కాదా (ముందునుంచి, వెనుకనుంచి ఒకేలా ఉండే సంఖ్య, ఉదా: 121) చెప్పే function రాయండి. 121 మరియు 123 తో test చేయండి.
  4. మార్కులు ఇస్తే "Pass" (35 లేదా ఎక్కువ) లేదా "Fail" return చేసే function రాయండి. (72, 20 తో test చేయండి)
  5. Celsius ని Fahrenheit గా మార్చే function రాయండి. (F = C × 9 / 5 + 32) 100 మరియు 0 తో test చేయండి.
👉 సమాధానాలు చూడండి

1. వృత్తం వైశాల్యం:

function circleArea(radius) {
  return Math.PI * radius * radius;
}
console.log(circleArea(5));
Output: 78.53981633974483

2. పెద్ద సంఖ్య (maxOfTwo):

function maxOfTwo(a, b) {
  if (a > b) {
    return a;
  }
  return b;
}
console.log(maxOfTwo(15, 42));
Output: 42

3. Palindrome సంఖ్య:

function isPalindrome(num) {
  let original = num;
  let reversed = 0;
  while (num > 0) {
    const last = num % 10;
    reversed = reversed * 10 + last;
    num = (num - last) / 10;
  }
  return original === reversed;
}
console.log(isPalindrome(121));
console.log(isPalindrome(123));
Output:
true
false
(సంఖ్య యొక్క అంకెలను వెనుకనుంచి తిరగేసి (reversed) అసలు సంఖ్యతో పోల్చాం. 121 తిరగేస్తే 121, 123 తిరగేస్తే 321.)

4. Pass లేదా Fail:

function result(marks) {
  if (marks >= 35) {
    return "Pass";
  }
  return "Fail";
}
console.log(result(72));
console.log(result(20));
Output:
Pass
Fail

5. Celsius to Fahrenheit:

function toFahrenheit(c) {
  return c * 9 / 5 + 32;
}
console.log(toFahrenheit(100));
console.log(toFahrenheit(0));
Output:
212
32
🚀 మీరే try చేయండి

ఈ code ని మన compiler లో run చేయండి. ఒక షాప్ బిల్లు function ఇది, GST % ఇవ్వకపోతే 18% అనుకుంటుంది. విలువలు మార్చి ఫలితాలు చూడండి:

JavaScript — Live Shop Billing ▶ Run in Compiler
function billAmount(price, qty, gstPercent = 18) {
  const subtotal = price * qty;
  return subtotal + subtotal * gstPercent / 100;
}

console.log(billAmount(250, 3));
console.log(billAmount(250, 3, 5));
Output:
885
787.5

మొదటి call లో GST ఇవ్వలేదు (18% వాడింది), రెండో call లో 5% ఇచ్చాం.

👉 Our Compiler లో JavaScript try చేయండి
🧠 Interactive Telugu Quiz

JavaScript Functions నాలెడ్జ్ చెక్

ఈ క్రింది ప్రశ్నలకు సమాధానమిచ్చి మీ అవగాహనను పరీక్షించుకోండి. క్లిక్ చేసిన వెంటనే సరైన ఆన్సర్ మరియు తెలుగు వివరణ కనిపిస్తాయి:

❓ ప్రశ్న 1 / 5
1. function greetUser(name) { ... } లో name ని ఏమంటారు?
❓ ప్రశ్న 2 / 5
2. JavaScript లో ఏ return స్టేట్‌మెంట్ రాయని function డిఫాల్ట్‌గా ఏమి విలువను తిరిగి ఇస్తుంది?
❓ ప్రశ్న 3 / 5
3. క్రింది কোడ్ రన్ చేస్తే ఏమి జరుగుతుంది?
console.log(cube(3));
const cube = function (n) { return n ** 3; };
❓ ప్రశ్న 4 / 5
4. function calc(a, b = 10) { return a + b; } ని calc(5) తో call చేస్తే ఔట్‌పుట్ ఏమిటి?
❓ ప్రశ్న 5 / 5
5. Function లోపల return స్టేట్‌మెంట్ తర్వాత రాసిన code ఎందుకు run అవ్వదు?
క్విజ్ ప్రారంభించండి! (మొత్తం 5 ప్రశ్నలు)

📌 సారాంశం (Quick Summary):

  • Function అంటే: ఒక పనికి సంబంధించిన code ని పేరు పెట్టి, ఎన్ని సార్లైనా పునర్వినియోగించుకునే (reuse) ఏర్పాటు.
  • Declare: function పేరు(parameters) { ... }. Call: పేరు(arguments); (కుండలీకరణాలు తప్పనిసరి).
  • Parameter = declare చేసేటప్పుడు రాసే ఖాళీ డబ్బా పేరు. Argument = call చేసేటప్పుడు పంపే అసలైన విలువ.
  • return: విలువను తిరిగి ఇస్తుంది మరియు function ని అక్కడే ముగిస్తుంది. return లేకపోతే undefined వస్తుంది.
  • console.log vs return: console.log కేవలం చూపిస్తుంది, return లెక్కల కోసం ప్రోగ్రామ్ కి తిరిగి ఇస్తుంది. రెండూ వేరు!
  • Default parameter: function f(name = "అతిథి") — argument ఇవ్వకపోతే డిఫాల్ట్ విలువను వాడుకుంటుంది.
  • Hoisting: Function declaration ని ముందే call చేయొచ్చు (Hoisting). కానీ function expression ని ముందే call చేస్తే ReferenceError వస్తుంది.
  • Local Scope: Function లోపలి variables బయటకు కనిపించవు.
  • ప్రతి function ఒక్క పని మాత్రమే బాగా చేయాలి. Function పేరు సాధారణంగా క్రియ (verb) తో మొదలవ్వాలి.

👉 తర్వాతి పాఠం: Arrow Functions →

ఇప్పటివరకు మనం సాంప్రదాయ function కీవర్డ్ తో functions రాశాం. తర్వాతి పాఠంలో ఆధునిక JavaScript (ES6+) లో functions ని అత్యంత చిన్నగా, సొగసైన పద్ధతిలో రాసే Arrow Functions (=>) గురించి నేర్చుకుందాం!

13. Arrow Functions: ఆధునిక జావాస్క్రిప్ట్ సింటాక్స్ →