Skip to main content

Command Palette

Search for a command to run...

Expression vs. Statement

Published
2 min read
Expression vs. Statement
A

I am a Frontend Web Developer. I work with ReactJS and NextJS. I also try to share my knowledge with the community.

Expression এবং Statement এর মধ্যে আমরা প্রোগ্রামাররা অনেক কনফিউশনে থাকি। এই আর্টিকেলের উদ্দেশ্য ছোট একটা ওভারভিউর মাধ্যমে বিষয়টা ক্লিয়ার করা।

Expression and Statement এর মধ্যে বেসিক যে পার্থক্য সেটা হলো এক্সপ্রেশন দিন শেষে কিছু না কিছু রিটার্ন করে, ডাটা প্রোডিউস করে, এবং একে কোনো এক জায়গায় স্টোর করে রাখা যায়। সেই হিসেবে ফাংশন কল এক ধরণের এক্সপ্রেশন। আর স্টেটমেন্ট কোনো ডাটা প্রোডিউস করেনা, কোথাও স্টোর করে রাখা যায় না, কিছু রিটার্ন করে না। ফাংশন লেখা হচ্ছে স্টেটমেন্ট, আর ফাংশন কল হচ্ছে এক্সপ্রেশন। কারণ ফাংশন লিখলে তা কিছু রিটার্ন করে না যতক্ষণ পর্যন্ত কল করা না হচ্ছে। আবার যদি অ্যারো ফাংশন লেখা হয় সেটা এক্সপ্রেশন কারণ সেটাকে একটা ভ্যারিয়েবলে স্টোর করে রাখা হচ্ছে। কিছু উদাহরণ দেখা যাক।

const name1 = 'Rayhan'; // Statement
const name2 = 'Alvi'; // Statement
const name3 = 'Anik'; // Statement
const name4 = 'Arjun'; // Statement
const name5 = 'Ayman'; // Statement

এগুলো সব স্টেটমেন্ট। কারণ এরা কিছু রিটার্ন করছে না।

const students = [
    'Rayhan',
    'Alvi',
    'Anik',
    'Arjun',
    'Ayman',
    'Ayuub',
    'Bidyut',
]; // Statement

console.log(students[0]); // Expression
console.log(students[1]); // Expression
console.log(students[2]); // Expression
console.log(students[3]); // Expression
console.log(students[4]); // Expression

for (let i = 0; i < students.length; i++) {
    console.log(students[i], students[i].toLowerCase()); // Expression
} // Statement

প্রথমটা ছিল স্টেটমেন্ট। কারণ তা কোনো কিছু রিটার্ন করছে না। console.log() হচ্ছে এক্সপ্রেশন কারণ তা কিছু না কিছু রিটার্ন করছে। ফর লুপ স্টেটমেন্ট। কারণ তা কিছু রিটার্ন করছে না। তবে লুপের ভিতরের console.log() এক্সপ্রেশন।

function nameOfFunction(name) {
    if (!name) {
        console.log('Please provide your name');
    } else {
        console.log('Hello', name);
    }
} // Statement

ফাংশন এভাবে লিখলে তা ফাংশন স্টেটমেন্ট। কারণ তা কিছু রিটার্ন করছে না যতক্ষণ না কল করা হচ্ছে।

const nameOfFunction = function (name) {
    if (!name) {
        console.log('Please provide your name');
    } else {
        console.log('Hello', name);
    }
} // Expression

কিন্তু এভাবে লিখলে তা এক্সপ্রেশন। কারণ ফাংশনকে ভ্যারিয়েবলে স্টোর করে রাখা হয়েছে।

nameOfFunction('Murshed'); // Expression
nameOfFunction('Fahim'); // Expression
nameOfFunction(); // Expression

কোনো ফাংশন কল করা হলো এক্সপ্রেশন। কারণ কল করলে তা কিছু না কিছু রিটার্ন করবেই। যদি রিটার্ন করার মতো কিছু না থাকে তাহলে অন্তত undefined রিটার্ন করবে।

function generateRandomNumber(min = 1, max) {
    const randomNumber = Math.floor(Math.random() * min + (max - min)); // Statement
    return randomNumber; // Expression
} // Statement

console.log(generateRandomNumber(5, 10)); // Expression

শেষ উদাহরণ। ফাংশন স্টেটমেন্ট, এর ভিতরের randomNumber ভ্যারিয়েবল স্টেটমেন্ট, Math.floor(Math.random() * min + (max - min)) এক্সপ্রেশন, return randomNumber এক্সপ্রেশন, console.log(generateRandomNumber(5, 10)) এক্সপ্রেশন।

আশা করি কিছুটা হলেও বুঝা গেছে এক্সপ্রেশন আর স্টেটমেন্টের মধ্যে পার্থক্য। 😊😊

S

vai, ami jototuku bujhi console.log(fn()) - eta statement, karon bola hocche, ei function er call ta console e print koro. fn() - eituku expression. jmon var a =2+5, eta puruta ekta statement, but 2 + 5 hocche expresssion.

S

great brother...happy to see you write in your language

1
A

Thanks bro...

More from this blog

How To Configure MUI Theme with Next.js App Router

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

Jun 24, 20234 min read600
How To Configure MUI Theme with Next.js App Router

কলব্যাক ফাংশন - কি, কেন, কিভাবে?

কলব্যাক ফাংশন কি? ধরুন আপনি কোনো রেস্টুরেন্টে খেতে গেলেন। সেই রেস্টুরেন্টে সেলফ সার্ভিস অর্থাৎ আপনাকে কাউন্টারে গিয়ে অর্ডার করতে হবে এবং আপনাকে কাউন্টার থেকে গিয়ে খাবার নিয়ে আসতে হবে। আপনি খাবার অর্ডার করে কি দাঁড়িয়ে থাকবেন কাউন্টারে? কখনই না। আপনি এ...

Jun 19, 20233 min read160
কলব্যাক ফাংশন - কি, কেন, কিভাবে?

Unit and Integration Testing with Vitest and React Testing Library

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

May 31, 202312 min read80
Unit and Integration Testing with Vitest and React Testing Library

Thunder Client (Postman এর বিকল্প)

Introduction আজ আপনাদের এমন একটা টুলের সাথে পরিচয় করিয়ে দেবো যার নাম Thunder Client। এটা মূলত একটা ভিএস কোডের এক্সটেনশন। এটার মাধ্যমে এপিআই টেস্টের জন্য ব্যবহার করা হয়। Postman এর বিকল্প বলতে পারেন। এটার সুবিধা হলো এটা অনেক হালকা। এবং আপনার এডিটরেই আ...

Jul 6, 20223 min read380
Thunder Client (Postman এর বিকল্প)
A

Aditya's Blog

6 posts

I am a Frontend Web Developer. I work with ReactJS and NextJS. I also try to share my knowledge with the community.