ডাটা টাইপ ইন জাভাস্ক্রিপ্ট
Tags: webdev, javascript, beginners, tutorial
Published: 2023-10-30 12:12:38

ডেটা না ডাটা? এটা নিয়ে কমিউনিটিতে অনেক কথাবার্তা শোনা যায়। প্রথমে এই ব্যাপারে একটু ক্লিয়ার করে নেই। আসলে ডেটা অথবা ডাটা দুটোই সঠিক। ডেটা (pronounciation — day.ta) ব্রিটিশ একসেন্টে বলা হয়ে থাকে। আর ডাটা (pronounciation — daa.ta) বলা হয়ে থাকে আমেরিকান একসেন্টে। আমরা দুইভাবেই বলতে পারি, এটা নিয়ে কনফিউশনে থাকার আর কোনো দরকার নেই।

এখন, আসুন দেখা যাক, জাভাস্ক্রিপ্ট প্রোগ্রামিং ল্যাংগুয়েজে ডাটা কত ধরণের হয়ে থাকে —

মোট ৮ ধরণের,

— নাম্বার, number

— স্ট্রিং, string

— বুলিয়ান, boolean

— বিগ-ইন্ট, bigint

— নাল, null

— আনডিফাইন্ড, undefined

— সিম্বল, symbol

— অবজেক্ট, object


## নাম্বার, number

![number data type in javascript](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4yduwnpixq7r6t4k8bz3.png)
num এবং number দুই ভ্যারিয়েবলের সাহায্যে ইন্টিজার এবং ফ্লোটিং নাম্বার দুইটাই নেওয়া হয়েছে। অন্যান্য ডাটা টাইপ যেমন স্ট্রিং কে নাম্বারে রুপান্তর করা যায় Number() ফাংশন এর সাহায্যে, যেমন —

![string to number data type in javascript](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0f7goz6smrf7eqsdwml.png)
এখানে, স্ট্রিং “১২৩” কে নাম্বারে রুপান্তর করা হয়েছে। তবে যেগুলো রুপান্তর করা সম্ভব না, সেসবের ক্ষেত্রে নাম্বার রিটার্ন করবে না। নট এ নাম্বার রিটার্ন করবে। একে বলা হয়, nan বা নট অ্যা নাম্বার। এটি একটি স্পেশাল নিউম্যারিক ভ্যালু।

![nan type](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/css8n57crsdghn26tcj1.png)
তাছাড়া যোগ, গুণ, ভাগ অপারেটর এর কাজ করা হয়ে থাকে নাম্বার ডাটা টাইপের সাহায্যে।


## স্ট্রিং, string

![string type](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8ab4kep7e3h8e2v96pu.png)

তিনভাবে স্ট্রিং ব্যবহার করা যায়, ডাবল কোটস, সিংগেল কোটস এবং ব্যাকটিক। সিংগেল এবং ডাবল দুটোর মধ্যে কোনো পার্থক্য নেই, একইভাবে কাজ করে। তবে ব্যাকটিকের ব্যাবহার বাকি দুইটা থেকে আলাদা,

![backtick string](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwq1f8eimd0jv3czo9vo.png)

এখানে আমরা ব্যাকটিক ব্যাবহার করে একটি স্ট্রিংয়ের ভিতর অন্য একটি স্ট্রিং কল করে ব্যাকটিক স্ট্রিংটাকে কনসোল করেছি। ব্যাকটিকের ভিতর এভাবে অন্য ভ্যারিয়েবল কল ছাড়াও নরমালি ম্যাথম্যাটিকেল অপারেশন ও করতে পারি,

![backtick string](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z08xmoisntowtbhs8icq.png)

যোগ করা হয়েছে ব্যাকটিক ফাংশনের ভিতর। এই ফাংশনালিটি ডাবল স্ট্রিং এবং সিংগেল স্ট্রিং এর মধ্যে নেই।

## বুলিয়ান, boolean

![boolean](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4j2uaql0hbvhaokd0nvv.png)

৪ এবং ৪ সমান, তাই এখানে ট্রু দেখাচ্ছে।

![boolean](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cp77o2gmzxdnan7n9f8f.png)
৬ এবং ৪ সমান নয়, এখানে ফলস দেখা যাচ্ছে। বুলিয়ান ডাটা টাইপ দুই ধরণের ভ্যালু দেখায়, ট্রু এবং ফলস।


## বিগ-ইন্ট, bigint

যেসব নাম্বার নরমালি Number / নাম্বার ডাটা টাইপে স্টোর করা যাবে না সেগুলোর জন্যে বিগ-ইন্ট ব্যবহার করা হয়ে থাকে। ইন্টিজার অথবা নাম্বার ডাটা টাইপে সর্বোচ্চ ১৫ সংখ্যা পর্যন্ত ডিজিট ব্যবহার করা যাবে, এর বেশি ডিজিটের জন্যে বিগ-ইন্ট প্রয়োজন হবে, কারণ ১৫ ডিজিটের পরে আর সেটার গ্রহণযোগ্যতা কমে যায়।

![big int](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5pg1kaqfnj2ojhjjwr3p.png)

নাম্বার ডাটা টাইপের সাহায্যে সঠিকভাবে সর্বোচ্চ 9007199254740991 এবং সর্বনিম্ন -9007199254740991 পর্যন্ত ইন্টিজার ভ্যালু প্রকাশ করা যায়। এর উপর বা নিচে প্রকাশ করতে বিগ-ইন্ট এর সাহায্য নিতে হবে। তবে বিগ-ইন্টে ডেসিমেল ভ্যালু এসাইন করা যায় না। এবং নাম্বার ডাটা টাইপ, বিগ-ইন্ট ডাটা টাইপের মধ্যে গাণিতিক অপারেশন চালানো যাবে না।

## নাল, null

নাল হচ্ছে ইচ্ছাকৃতভাবে কোনো অব্জেক্টের ভ্যালু না দিয়ে, ফাঁকা রাখা, যেমন

![null](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l1pz0phaphfqb589t6ed.png)

এখানে num এর ভ্যালু দেওয়া হয়েছে null. তাই কন্সোল করার পরেও null রিটার্ন করছে। ভ্যারিয়েবল ফাঁকা না রেখে নাল রাখা হয়। এর মানে হচ্ছে, নাথিং বা শুণ্য।


## আনডিফাইন্ড, undefined

নালের মতই কিন্তু এটা অনিচ্ছাকৃত। নালের ক্ষেত্রে ভ্যালু এসাইন করা হয়ে থাকে আর আনডিফাইন্ডের ক্ষেত্রে কোনো ভ্যালু দেওয়া না হলে, রিটার্ন করবে আনডিফাইন্ড, undefined.

![undefined](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/65byup7ni5v4nu8vh64x.png)

এখানে name ভ্যারিয়েবলের কোনো মান দেওয়া হয় নি, তাই রিটার্ন করছে undefined / আনডিফাইন্ড।


## সিম্বল, symbol

![symbol](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/im9n0khivcjg22npu71d.png)

ES6 এর ফিচার হিসেবে সিম্বল এড করা হয়েছে। এটি একটি বিল্ট-ইন অবজেক্ট। যেটির কন্সট্রাক্টর একটি সিম্বল ভ্যালু রিটার্ন করে, এবং প্রতিবার ইউনিক ভ্যালু রিটার্ন করবে। সিম্বল প্রাইভেট অবজেক্ট প্রপার্টিস বানানোর ক্ষেত্রে বেশি ব্যাবহার করা হয়ে থাকে।


## অবজেক্ট, object

বলা হয়ে থাকে, অবজেক্ট বুঝতে পারলে জাভাস্ক্রিপ্ট বুঝতে বাকি থাকে না। জাভাস্ক্রিপ্টের প্রায় সবই অবজেক্ট। ভ্যারিয়েবল ও অবজেক্ট, একটি ভ্যালু অথবা অনেক ভ্যালু এসাইন করা থাকলেও,

![object](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8y24idzkt3mykkzu4hvz.png)

এখানে, একটি ভ্যালু সেট করা হয়েছে person ভ্যারিয়েবলে। অনেক ভ্যালুও সেট করা যায় অবজেক্ট হিসেবে,

![object](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwy5l9fh9iqrxhd5umbr.png)

এই পারসন ভ্যারিয়েবলে অনেকগুলো ভ্যালুর অবজেক্ট সেট করা হয়েছে। প্রতিটা অবজেক্ট আলাদা করা হয়েছে কমার সাহায্যে। এগুলো বলা হয়ে থাকে, অবজেক্ট মেথড, firstName, lastName, address and eyes হচ্ছে প্রোপার্টি এবং sakib, md nazmush, dhaka, black এগুলো হচ্ছে ভ্যালু।


পরিশেষে, আমরা জাভাস্ক্রিপ্টের ডাটা টাইপ এবং প্রকারভেদ সমন্ধে জানলাম। প্রতিটা ডেভেলাপার বা যারা প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখার জার্নি শুরু করতে যাচ্ছেন তাদের সবার জন্যেই মাষ্ট একটা জিনিস হচ্ছে ডাটা টাইপ। জাভাস্ক্রিপ্ট ডাটা টাইপ জানা থাকলে ডাইনামিক এপ্লিকেশন তৈরি করতে বেগ পেতে হবে না।

রেফারেন্সঃ w3schools, mdn web docs and google.