১৮ সেপ্টেম্বর, ২০২২
পড়তে মিনিট লাগতে পারে

জাভাস্ক্রিপ্টঃ স্টেটমেন্ট আর এক্সপ্রেশন

শেয়ার করুনঃ

আমি আমার অনেক পর্বে স্টেটমেন্ট আর এক্সপ্রেশন এই দুইটা শব্দ অনেক ইউজ করেছি বা হয়তো অনেক জায়গায় দেখে থাকবেন এই দুইটা জিনিস। আজকে আমি শুধুমাত্র এই দুইটা নিয়েই কথা বলবো।

আমাদের কোডে মাঝেমধ্যে কিছু লাইন ভ্যালু প্রডিউস করে। যেমন ১০ + ১০ সমান ২০ হয়। আবার কিছু কোড আছে যেগুলো শুধুমাত্র অ্যাকশন নেয়। যেমন কন্ডিশনাল স্ট্যাটমেন্টগুলো। এগুলো কোনো ভ্যালু প্রডিউস করে না, জাস্ট কিছু নির্দিষ্ট কিছু অ্যাকশন নেয়। এগুলোর উপর ভিত্তি করেই আমরা স্ট্যাটমেন্ট আর এক্সপ্রেশনকে পার্থক্য করে থাকি। সোজা বাংলায় এক্সপ্রেশন ভ্যালু প্রডিউস করে আর স্ট্যাটমেন্ট শুধুমাত্র অ্যাকশন নেয়।

এক্সপ্রেশনঃ

নিচের উদাহরণে ১০ যোগ ১০ করে একটা ভ্যারিয়েবলে স্টোর করা হয়েছে। এখানে ভ্যালু প্রডিউস হয়েছে যেহেতু তাই এটা এক্সপ্রেশনঃ

var a = 10 + 10;

এক্সপ্রেশন সাধারণত এক লাইনের কোড হয়। পাশাপাশি আরো অনেক কিছু অ্যাড করা যেতে পারে, কিন্তু দিন শেষে একটা একটা ভ্যালু সে প্রডিউস করবেই। নিচের উদাহরণগুটাও এক্সপ্রেশনঃ

var fullName = 'Zonayed' + ' ' + 'Ahmed';

আরো উদাহরনঃ

2 + 2
3 * 7
1 + 2 + 3 * (8 ** 9) - Math.sqrt(4.0)
Math.min(2, 22)
Math.max(3, 94)
Math.round(81.5)
'Zonayed'
'Ahmed'
'Zonayed' + 'Ahmed'
null
true
talse
2
3
4.0

স্ট্যাটমেন্টঃ

আর অন্যদিকে স্ট্যাটমেন্ট জাস্ট কিছু অ্যাকশন নিবে। যেমন লুপ, কন্ডিশনাল স্ট্যাটমেন্টসহ আরো অনেক কিছুঃ

if(10 < 20) {
   console.log('Yeah! It is true');
} else {
   console.log('No! It is not True');
}

উপরের এটা জাস্ট অ্যাকশন নিচ্ছে। ভিতরে থাকা এক্সপ্রেশন অনুযায়ী, সত্য না মিথ্যা হবে সেটার উপর ভিত্তি করে পার্টিকুলার পার্ট প্রিন্ট করছে। সেইমভাবে অন্য সবগুলোওঃ

for(expressions) {
   //Some Code here
}

do {
   //Some code here
}

while(expression);while(expression) {
   //Some code here
}

আবার লক্ষ্য করুন, স্ট্যাটমেন্ট কয়েক লাইনের হয়। এক্সপ্রেশন যেখানে বেশীরভাগ সময়ে এক লাইনের হয়, সেখানে স্ট্যাটমেন্ট কয়েক লাইনের হতে পারে। তো এটাও একপ্রেশন আর স্ট্যাটমেন্ট চিনতে কাজে দিতে পারে। কিন্তু তারপরেও কিছু ভিন্নতা রয়েছে

বিভিন্নরকম ফাংশনঃ

আমরা জানি ফাংশনকেও ভ্যারিয়েবলে স্টোর করা যায়। এখন ফাংশনকে যদি ভ্যারিয়েবলে স্টোর করি তাহলে সেটা কি হবে? এক্সপ্রেশন নাকি স্ট্যাটমেন্ট? হ্যা আমার কথামতো সেটা এক্সপ্রেশনই হবে।

ফাংশন এক্সপ্রেশনঃ

এভাবে ফাংশন নিয়ে সেটা কোনো ভ্যারিয়েবলে স্টোর করলে সেটা ফাংশন এক্সপ্রেশন হবেঃ

var someFunc = function(params) {
   //Some code here
}

ফাংশন স্ট্যাটমেন্টঃ

আর নরমালভাবে ফাংশন নিলে সেটা ফাংশন স্ট্যাটমেন্ট হবেঃ

function sumFunc(params) {
   //Some Code here
}

আশা করি এবার স্ট্যাটমেন্ট আর এক্সপ্রেশন এই দুইটা ব্যাপার একদম ক্লিয়ার হয়ে গেছে। আজকে এই পর্যন্তই।

ট্যাগঃ
শেয়ার করুনঃ

ক্রমানুসারে এই জাভাস্ক্রিপ্ট সিরিজঃ

জাভাস্ক্রিপ্ট ব্যাসিক
জাভাস্ক্রিপ্টঃ কি, কেন, কখন? জাভাস্ক্রিপ্টঃ কোথায় এবং কিভাবে ইউজ করা হয়? জাভাস্ক্রিপ্টঃ ব্যাসিক ক্রোম ডেভেলপার কন্সোল জাভাস্ক্রিপ্টঃ ভ্যারিয়েবল এবং ডাটা টাইপ জাভাস্ক্রিপ্টঃ অপারেটর নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ কন্ডিশনাল স্টেটমেন্ট নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ লুপ নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ অ্যারে নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ ব্যাসিক অবজেক্ট জাভাস্ক্রিপ্টঃ ব্যাসিক ফাংশন জাভাস্ক্রিপ্টঃ স্টেটমেন্ট আর এক্সপ্রেশন জাভাস্ক্রিপ্টঃ ড্রাই প্রিন্সিপ্যাল জাভাস্ক্রিপ্টঃ নাকি ইকমাস্ক্রিপ্ট? জাভাস্ক্রিপ্টঃ বিহ্যাইন্ড দ্যা সীন জাভাস্ক্রিপ্টঃ হোইস্টিং(Hoisting) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ স্কোপ(Scope) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ ক্লোজারস(Closures) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ ইফি, Immediately Invoked Function Expressions (IIFE)
জাভাস্ক্রিপ্ট অ্যাডভান্স
জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ‘this’ কীওয়ার্ড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ call(), bind() এবং apply() মেথড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ অবজেক্ট ওরিয়েন্টেড জাভাস্ক্রিপ্ট জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ফাংশন কন্সট্রাকটর(Constructor) এবং ‘new’ কীওয়ার্ড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ইনহেরিট্যান্স (Inheritance) জাভাস্ক্রিপ্ট অ্যাডভান্সঃ স্ট্রিক্ট (Strict) মোড
জাভাস্ক্রিপ্ট ইএস ৬(ES6)
জাভাস্ক্রিপ্ট ইএস ৬(ES6): নতুন কি আছে? জাভাস্ক্রিপ্ট ইএস ৬(ES6): let এবং const দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করা জাভাস্ক্রিপ্ট ইএস ৬(ES6):ইফি (Immediately Invoked Function Expressions) জাভাস্ক্রিপ্ট ইএস ৬(ES6): টেমপ্লেট লিটারেল(Template Literal) ও স্ট্রিং মেথড জাভাস্ক্রিপ্ট ইএস ৬(ES6): অ্যারো (Arrow) ফাংশন ও লেক্সিক্যাল(Lexical) ‘this’ কীওয়ার্ড জাভাস্ক্রিপ্ট ইএস ৬(ES6): অ্যারে জাভাস্ক্রিপ্ট ইএস ৬(ES6): স্প্রেড(Spread) অপারেটর জাভাস্ক্রিপ্ট ইএস ৬(ES6): ডি-স্ট্রাকচারিং (Destructuring) জাভাস্ক্রিপ্ট ইএস ৬(ES6): রেস্ট(Rest) প্যারামিটার জাভাস্ক্রিপ্ট ইএস ৬(ES6): ডিফল্ট(Default) প্যারামিটার জাভাস্ক্রিপ্ট ইএস ৬(ES6): ম্যাপ (Map) জাভাস্ক্রিপ্ট ইএস ৬(ES6): ক্লাস (Class) জাভাস্ক্রিপ্ট ইএস ৬(ES6): ক্লাস ও ইনহেরিট্যান্স (Inheritance) জাভাস্ক্রিপ্ট ইএস ৬(ES6): সব ইনভারোমেন্ট এ ইএস৬
নিত্যদিনের জাভাস্ক্রিপ্ট
নিত্যদিনের জাভাস্ক্রিপ্টঃ ফার্স্ট ক্লাস ফাংশন ও হাইয়ার অর্ডার ফাংশন নিত্যদিনের জাভাস্ক্রিপ্টঃ map(), filter() ও reduce() নিত্যদিনের জাভাস্ক্রিপ্টঃ some() ও every() মেথড নিত্যদিনের জাভাস্ক্রিপ্টঃ অবজেক্ট এ লুপ চালানো নিত্যদিনের জাভাস্ক্রিপ্টঃ ডট নোটেশন এবং ব্র্যাকেট নোটেশন নিত্যদিনের জাভাস্ক্রিপ্টঃ ম্যাথ (Math) অবজেক্ট নিত্যদিনের জাভাস্ক্রিপ্টঃ ডেট (Date) অবজেক্ট নিত্যদিনের জাভাস্ক্রিপ্টঃ লজিক্যাল অপারেটর অর (।।) এবং অ্যান্ড (&&) নিত্যদিনের জাভাস্ক্রিপ্টঃ কন্ডিশনাল/টার্নারি (Ternary) অপারেটর নিত্যদিনের জাভাস্ক্রিপ্টঃ রেগুলার এক্সপ্রেশন (Regular Expression) নিত্যদিনের জাভাস্ক্রিপ্টঃ এরর হ্যান্ডলিং (Error Handling) নিত্যদিনের জাভাস্ক্রিপ্টঃ ডেভেলপার কন্সোল (Console) নিত্যদিনের জাভাস্ক্রিপ্টঃ অ্যাসিনক্রোনাস (Asynchronous) নিত্যদিনের জাভাস্ক্রিপ্টঃ কলব্যাক(Callback) ফাংশন নিত্যদিনের জাভাস্ক্রিপ্টঃ প্রমিস (Promise) নিত্যদিনের জাভাস্ক্রিপ্টঃ async এবং await