(কোডিং জে এস)Coding JS
  • কোডিং JS
  • সূচিপত্র(Index)
  • ভূমিকা
  • লেখক পরিচিতি(Writer Intro)
  • ইতিহাস
  • জাভাস্ক্রিপ্টের বিস্তার কত দূর?
  • কাদের জন্য জাভাস্ক্রিপ্ট?
  • এনভায়রনমেন্ট সেটআপ
  • ব্রাউজার পরিচিতি
  • ভাল এডিটর বা আইডিই
  • জাভাস্ক্রিপ্টের ইঞ্জিন (JS Engine)
  • প্রথম প্রোগ্রাম = হ্যালো বাংলাদেশ
  • সিনট্যাক্স নিয়ে যত কথা।
  • ভেরি + এবল = ভেরিয়্যাবল কি?
  • ডেটা টাইপ
    • প্রিমিটিভ ডাটা টাইপ(Primitive data type)
      • বুলিয়ান (Boolean)
      • আন্ডিফাইন্ড (Undefined)
      • নাল (Null)
      • নাম্বার (Number)
      • বিগ ইন্টিজার (BigInt)
      • স্ট্রিং (String)
      • সিম্বল (Symbol)
    • নন-প্রিমিটিভ ডাটা টাইপ(Non-primitive data type)
      • অব্জেক্ট (Object)
      • অ্যারে(Array)
  • অপারেটর
  • কন্ডিশনাল কন্ট্রোল ফ্লো(Conditional Control flow)
  • লুপ এবং ইটারেশন(Loop & Iteration)
    • 🔃ফর লুপ(For loop)
    • 🔃ও্যাইয়ল লুপ (While Loop)
    • 📿পুনারাবৃত্তি (Iteration)
  • ফাংশন (Function)
    • রেগুলার ফাংশন (Regular Function)
    • অ্যারো ফাংশন(Arrow Function)
    • নেস্টেড ফাংশন ( Nested Function)
    • ক্লোজার ফাংশন(Closures Function)
    • আই. আই. এফ. ই. (IIFE)
    • হাইয়ার অর্ডার ফাংশন (Higher Order Function)
    • কারিং ফাংশন (Currying function)
    • এন এফ ই (NFE)
    • রিকার্সিভ ফংশন (Recursive Function)
    • জেনারেটর ফাংশন (Generator Function)
  • ক্লাস ও অবজেক্ট অরিয়েন্টেড (class & OOP)
    • মেম্বার ফাংশন (Member Function)
    • ইনহেরিটেন্স (Inhertance)
    • এনসকেপসুলেশন (Encapsulations)
    • অবস্ট্রাকশন(Abstraction)
    • পলিমরফিজম (Polymorphism)
  • কলব্যাক ফাংশন (callback function)
  • প্রমিস (Promise)
  • Async এবং await (Async & Await)
  • এজ্যাক্স (Ajax)
  • ফেচ (fetch)
  • ওয়েভ এপি আই(Web API)
    • ওয়েব স্টোরেজ (Web Storage)
      • বিস্কিটের টুকরো (Cookies)
      • সেশন (Session)
    • হিস্ট্রি এপি আই (History API)
    • জিওলোকেশন এপি আই (Geolocation API)
    • ওয়ার্কার এপি আই (Workers API)
    • ফর্ম এপি আই (Form API)
  • জে এস ডোম(JS DOM)
  • জে এস স্টাইল (JS Style)
  • এপিআই কী? (What is API)
    • SOAP API
    • রেস্ট এপি আই(REST API)
  • ফ্রেমওয়ার্ক লাইব্রেরী নিয়ে খোশ গল্প
  • জাভাস্ক্রিপ্টের বিল্ডইন কী ওয়ার্ড(Javascript Build in keyword)
  • কৃতজ্ঞতা স্বীকার
Powered by GitBook
On this page
Edit on GitHub
  1. ফাংশন (Function)

এন এফ ই (NFE)

NFE(Name Function Expression) বুঝার আগে চলুন একটু পিছনে যায়। আমারা জানি জাভাস্ক্রিপ্ট অবজেক্ট বলে একটা ডাটা টাইপ আছে। জাভাস্ক্রিপ্টে ফাংশন অবজেক্ট হিসবে কাজ করে । ফাংশন জাভাস্ক্রিপ্টে অনেকগুলো সুবিধা দিয়ে থাকে যেমন ফাংশনকে কল করা যায়। অবজেক্ট এর মতো করে ডাটা যুক্ত করা যায় এবং বাদ দেওয়া যায়।

আরো গভীরে যাওয়ার আগে আমরা একটা উদাহরণ দেখে নিই চলুনঃ-

function codingJsBook(){
  console.log("The book is helpfull for javascript developer");
}
console.log(codingJsBook.name)

output:

codingJsBook

উপরে আমি একটি ফাংশন লিখেছি এবং সে ফাংশনটা কল না করে আমি সেটার name প্রোপার্টিটা এক্সেস করেছি। তার মানে হলো আমরা যখন কোন ফাংশন লিখি সেইটা যে নামে লিখা হয় সে নামটা একটা প্রোপার্টি হিসেবে কাজ করে ।

উপরের কোডটি চাইলে এইভাবেও লিখা যায় ।

const codingJsBook = function(){
  console.log("The book is helpfull for javascript developer");
}
console.log(codingJsBook.name)

output:

codingJsBook

ফাংশনে নাম assign করার মাধ্যমে ফাংশনের একটা পরিচিতি দেওয়া হয়। যাতে করে পরে আমরা যে ফাংশন লিখেছি সেইটার নাম দেখে যাতে বুঝতে পারি। এই যে আমরা ফাংশনের নাম এক্সেস করছি আর ফাংশন নামটা প্রোপার্টি হিসেবে রাখছে এই পুরো বিষয়টাকে বলে contextual name। অবজেক্টে আমরা যে মেথড লিখি সে মেথড গুলোতেও contextual name বিষয়টা আছে।

যেমনঃ-

let book={
    codingJs(){
     console.log("The book is helpfull for javascript developer")
    }
  }
console.log(book.codingJs.name)

output:

codingJs

আমরা চাইলে জাভাস্ক্রিপ্টে নাম ছাড়াও ফাংশন লিখতে পারি। যাকে আমরা anonymous ফাংশন বলি। যেমনঃ-

let arr = [function () {}]; 
console.log(arr[0].name); 

output:

""

সেক্ষেত্রে আপনি নামের পরিবর্তে শুধু empty string পাবেন।

function ask(question, ...handlers) {
  let isYes = confirm(question);

  for(let handler of handlers) {
    if (handler.length == 0) {
      if (isYes) handler();
    } else {
      handler(isYes);
    }
  }

}

// for positive answer, both handlers are called
// for negative answer, only the second one
ask("Question?", () => alert('You said yes'), result => alert(result));
Previousকারিং ফাংশন (Currying function)Nextরিকার্সিভ ফংশন (Recursive Function)

Last updated 1 year ago