জাভাস্ক্রিপ্ট টিউটোরিয়াল-শিখুন গল্পে গল্পে সাথে 1100+ Exercise

  • জাভাস্ক্রিপ্ট পরিচিতি-Introduction to JavaScript
  • প্রোগ্রামিং শুরু করতে কতটুকু গণিত লাগে?
  • প্রোগ্রামিং শুরু করতে কতটুকু ইংরেজি জানা লাগে?
  • ভালো প্রোগ্রামার কিভাবে হবো? [+৭টি গুরুত্বপূর্ণ টিপস]
  • function নো টেনশন
  • এক লিটার parameter
  • return করো: ফাংশনের প্রেম
  • ফাংশনের দংশন
  • ধাপে ধাপে ফাংশনের জংশন
  • শেষ মিশন: রিভিশন

return করো: ফাংশনের প্রেম


ছোট ভাইকে মশারি টাঙাতে বললে সে মশারি টাঙিয়ে ঘুমিয়ে পড়ে। কখনোই মশারি টাঙাতে বললে মশারি টাঙানোর পর কোনো কিছু তোর হাতে এনে দেয় না। একইভাবে ফ্যান অন করতে বললে সে ফ্যান অফ করে, কিন্তু তোর হাতে কিছু এনে দেয় না। তবে পানি আনতে বললে পানি ঠিকই এনে তোর হাতে দেয় বা সিঙ্গারা আনতে বললে সিঙ্গারাও এনে তোর হাতে দেয়।


এখানে দুই ধরনের ঘটনা ঘটছে। একধরনের ঘটনা হচ্ছে, কাজ করতে বললে কাজটা করে ফেলে, কিন্তু তোর হাতে কিছু ফেরত দেয় না। যেমন মশারি টাঙানো, ফ্যান অফ কর। আবার আরেক ধরনের কাজ আছে, যেখানে কাজটা করতে বলে কাজ শেষ করে তোকে কিছু একটা ফেরত বা রিটার্ন দেয়। যেমন— পানি দে, সিঙ্গারা দে।


তুই যখন ফাংশন ব্যবহার করবি, তখনও এই দুই ধরনের ঘটনা ঘটতে পারে। একটা হচ্ছে, তুই ফাংশনকে কোনো কাজ করতে বলতে পারবি এবং তার একটি ফলাফল তোর দরকার হতে পারে। আবার এমন কাজও হতে পারে, যেখানে ফাংশন কেবল কাজ করবে, কিন্তু তোকে কোনো ফলাফল ফেরত দেবে না।


এইসব ঘটনা থেকে বোঝা যায়, কিছু কিছু সময় ফাংশন থেকে কিছু রিটার্ন আসবে, আবার কিছু সময় ফাংশন থেকে কিছুই রিটার্ন আসবে না বা দরকার নেই।


ধর, একটা ফাংশন তৈরি করলাম, যেটার কাজ হচ্ছে একটি সংখ্যা দেওয়ার পরে সেটা আমাকে 10 গুণ করে দিবে।


এখন আমি যদি সেটাকে অন্য কাজে ব্যবহার করতে চাই, তখন ফাংশনের ভিতরে একটি স্পেশাল কি-ওয়ার্ড ব্যবহার করব, সেটি হচ্ছে return। 


return-এর পরে যেকোনো একটা ভেরিয়েবল লিখতে পারবি বা কোনো মান লিখতে পারবি।


নিচের ফাংশনের ভিতরে দেখবি, return-এর পরে result ভেরিয়েবলটা লেখা আছে, তাহলে এই ফাংশনকে কল করলে সেই result ভেরিয়েবলের মান রিটার্ন করে দিবে।


এইবার এই ফাংশনকে কল করার কাজটা হবে একটা ভেরিয়েবলের ডানপাশে। যাতে ফাংশনকে কল করলে যেটা রিটার্ন করবে, সেটা ভেরিয়েবলের মান হিসেবে সেট হয়ে যায়। এরপর চাইলে সেই ভেরিয়েবলকে অন্য অনেক কাজে লাগাতে পারবি।


  function tenTimes(number) {
    const result = number * 10;
    return result;
  }
  const output = tenTimes(5);
  console.log(output);

Output: 50


এখানে তুই দেখতেই পারছিস যে, ফাংশনের রিটার্ন করা ভ্যালুকে আমরা অন্য আরেকটি ভেরিয়েবলে স্টোর করছি।


  function add(price1, price2) {
    const total = price1 + price2;
    return total;
  }
  const bill = add(5, 80);
  console.log(bill);

Output: 85


তুই চাইলে ওপরের ফাংশনকে ছোট করে এভাবেও লিখতে পারিস— অর্থাৎ এখানে আলাদা করে কোনো ভেরিয়েবল ডিক্লেয়ার করে এটি করতে হবে, তা কিন্তু না। তুই চাইলেই সেটাকে সরাসরি রিটার্ন করে দিতে পারবি। এই টেকনিকটাও অনেকেই ব্যবহার করে।


  function add(price1, price2) {
    return price1 + price2;
  }


আবার বিভিন্নভাবে ফাংশনকে কল করা যায়। যেমন ধর, প্রথমে দুইটা ভেরিয়েবল দিয়ে কল করলি। তারপর অন্য দুইটা ভেরিয়েবল দিয়ে। তারপর সেই দুটার রেজাল্ট দিয়ে আরেকবার কল করলি।


  const potato = 35;
  const onion = 62;
  const shirt = 500;
  const pant = 1250;

  function add(price1, price2) {
    return price1 + price2;
  }

  const bill1 = add(potato, onion);
  const bill2 = add(shirt, pant);
  const final = add(bill1, bill2);
  console.log(final);

Output: 1847


তুই চাইলে এই ফাংশনের মাধ্যমে অনেক বড় বড় কাজও করে ফেলতে পারবি। উদাহরণস্বরূপ:


  function doMath(num1, num2) {
    const sum = num1 + num2;
    const diff = num1 - num2;
    const multiply = sum * diff;
    const result = multiply / 2;
    return result;
  }
  const result = doMath(10, 5);
  console.log(result);

Output: 37.5


দরকার হলে কন্ডিশন বা শর্তসাপেক্ষেও return হতে পারে।


ধর, একটা ফাংশন ডিক্লেয়ার করলাম, যেটা কোনো নাম্বার জোড়সংখ্যা হলে true রিটার্ন করবে, আর বিজোড় হলে false রিটার্ন করবে। 


  function isEven(num) {
    if (num % 2 === 0) {
      return true;
    } else {
      return false;
    }
  }
  console.log(isEven(5));
  console.log(isEven(110));

Output:  
false  
true


তাহলে তুই দেখেই বুঝতে পারছিস, কোনো কন্ডিশনের মাধ্যমে আমরা রিটার্ন স্টেটমেন্ট ব্যবহার করে বিভিন্ন কাজ করতে পারি। একই কাজ আমরা বিভিন্নভাবে করতে পারি। যেমন, আমি যদি আরেকটা উপায় দেখাই:


   function isOdd(num) {
    if (num % 2 === 1) {
      return true;
    }
    return false;
  }
  console.log(isOdd(10));
  console.log(isOdd(7));

Output:  
false  
true


এখানে কী ঘটেছে? এখানে যদি আমাদের কন্ডিশনটি সত্য হয়, অর্থাৎ সংখ্যাটি একটি বিজোড়সংখ্যা হয়, তাহলে সেটি true রিটার্ন করবে। কিন্তু যদি তা না হয়, তাহলে আরেকটি স্টেটমেন্ট না দিয়েই আমরা সরাসরি false রিটার্ন করে দিয়েছি। তুই চাইলে এই টেকনিকও ব্যবহার করতে পারিস।



JavaScrractice: 

  1. একটা ফাংশন লিখ, যাতে কোনো কন্ডিশনের ভিত্তিতে নাম্বার 10-এর বেশি হলে true রিটার্ন করবে, আর না হলে false রিটার্ন করবে। 
  2. তুই একটা ফাংশন লিখ, যা সংখ্যা নিবে আর তারপর সেই সংখ্যা যদি 13 দিয়ে সমানভাবে ভাগ যায়, তাহলে true রিটার্ন দিবে, না হয় false রিটার্ন দিবে।
  3. তুই একটা রেস্টুরেন্টে গিয়েছিস, সেখানে ভাত (rice), তরকারি (curry) আর ড্রিঙ্কস (drinks) খাবি। একটা ফাংশন লিখ, যাতে খাবারের মোট দাম যোগ করে মোট বিল রিটার্ন করবে।
  4. এমন একটা ফাংশন বানা, যেখানে বয়স দিলে সেটি 18-এর বেশি হলে "Eligible for Voting" রিটার্ন করবে, আর না হলে "Not Eligible"।
  5. একটা ফাংশন লিখ, যেখানে একটি ভেরিয়েবল স্ট্রিং হিসেবে দিবি, আর সেটার দৈর্ঘ্য রিটার্ন করবে।
  6. তুই একটা ফাংশন লিখ, যা তিনটা সংখ্যার গড় বের করে রিটার্ন করবে।
  7. একটা ফাংশন লিখ, যেটা চেক করবে, কোনো একটা সংখ্যা নেগেটিভ কি না। যদি নেগেটিভ (negative) নাম্বার হয়, তাহলে সেটাকে -1 দিয়ে গুণ করে রেজাল্ট রিটার্ন করবে।



Previous PageNext Page