নাম্বার মেথড

জাভাস্ক্রিপ্টে ডেটা টাইপগুলি মূলত নির্দিষ্ট করে যে কোনও প্রোগ্রামের মধ্যে কী ধরণের ডেটা সংরক্ষণ করা এবং ব্যবহার করা যায়।

জাভাস্ক্রিপ্টে প্রাথমিকভাবে ছয় প্রকার ডেটা টাইপ রয়েছে যা তিনটি প্রধান বিভাগে ভাগ করা যেতে পারে: প্রিমিটিভ(বা প্রাথমিক), কম্পোজিট(বা রেফারেন্স) এবং স্পেশিয়াল ডেটা টাইপ।

স্ট্রিং, নম্বর এবং বুলিয়ান হল প্রিমিটিভ ডেটা টাইপ। অবজেক্ট, অ্যারে এবং ফাংশন (যা সব ধরণের অবজেক্টস) হল কম্পোজিট ডেটা টাইপ। যেখানে অনির্দিষ্ট এবং নাল(Null) স্পেশিয়াল ডেটা টাইপ।

আজকে আমরা নাম্বার ডেটা টাইপ সম্পর্কে জানব।

নাম্বার ডেটা টাইপ দশমিক স্থান সহ বা ছাড়াই ধনাত্মক বা ঋণাত্মক সংখ্যার প্রতিনিধিত্ব করতে ব্যবহৃত হয়, বা এক্সপোনেনসিয়াল নোটেশন ব্যবহার করে লিখিত সংখ্যাগুলির জন্য উদাঃ 1.5e-4 (1.5x10-4 এর সমতুল্য)।

প্রিমিটিভ মানগুলি (3.14 বা 2014 এর মতো) এর প্রোপার্টি এবং মেথড থাকতে পারে না (কারণ তারা বস্তু নয়)।

তবে জাভাস্ক্রিপ্টে প্রোপার্টি এবং মেথডও প্রিমিটিভ মানগুলির জন্য থাকতে পারে, কারণ জাভাস্ক্রিপ্ট প্রোপার্টি এবং মেথড কার্যকর করার সময় প্রিমিটিভ মানগুলিকে অবজেক্ট হিসাবে বিবেচনা করে।

নিচে কিছু গুরুত্বপূর্ণ নাম্বার মেথড সম্পর্কে বলা হল ।

toString() মেথড

toString() মেথড স্ট্রিং হিসাবে একটি সংখ্যা ফেরত পাঠায়। সব নাম্বার মেথড যে কোনও ধরণের সংখ্যায় (লিটারেল, ভেরিয়েবল বা এক্সপ্রেশন) ব্যবহার করা যেতে পারে।

var x = 123;

x.toString(); // returns 123 from variable x

(123).toString(); // returns 123 from literal 123

(100 + 23).toString(); // returns 123 from expression 100 + 23

toExponential() মেথড

toExponential() একটি স্ট্রিং ফেরত পাঠায়, যা সংখ্যার রাউন্ড (round) এবং সূচকীয় নোটেশন ব্যবহার করে লিখিত।

এর ভেতরে ব্যবহার করা প্যারামিটারটি দশমিক পয়েন্টের পরের অক্ষরের সংখ্যা নির্ধারণ করে।

var x = 9.656;

x.toExponential(2); // returns 9.66e+0

x.toExponential(4); // returns 9.6560e+0

x.toExponential(6); // returns 9.656000e+0

প্যারামিটারটি ঐচ্ছিক। আপনি যদি এটি না লেখেন তবে জাভাস্ক্রিপ্ট নম্বরটি রাউন্ড করবে না।

ToFixed() মেথড

ToFixed() মেথড একটি নির্দিষ্ট সংখ্যার দশমিক স্থানসহ একটি স্ট্রিং প্রদান করে।

var x = 9.656;

x.toFixed(0); // returns 10

x.toFixed(2); // returns 9.66

x.toFixed(4); // returns 9.6560

x.toFixed(6); // returns 9.656000

টাকা নিয়ে কাজ করার জন্য ToFixed() মেথড সবচেয়ে উপযুক্ত।

ToPrecision() মেথড ঃ

ToPrecision() মেথড একটি সংখ্যার নির্দিষ্ট দৈর্ঘ্য সহ একটি স্ট্রিং প্রদান করে।

var x = 9.656;

x.toPrecision(); // returns 9.656

x.toPrecision(2); // returns 9.7

x.toPrecision(4); // returns 9.656

x.toPrecision(6); // returns 9.65600

valueOf() মেথড

valueOf() মেথড একটি নাম্বারকে নাম্বার হিসেবে ফেরত পাঠায়।

var x = 123;

x.valueOf(); // returns 123 from variable x

(123).valueOf(); // returns 123 from literal 123

(100 + 23).valueOf(); // returns 123 from expression 100 + 23

জাভাস্ক্রিপ্টে, একটি সংখ্যা একটি মান (টাইপফ = সংখ্যা) বা কোনও বস্তু (টাইপফ = অবজেক্ট) হতে পারে।

valueOf() মেথডটি জাভাস্ক্রিপ্টে সংখ্যা অবজেক্টকে প্রিমিটিভ মানগুলিতে রূপান্তর করতে অভ্যন্তরীণভাবে ব্যবহৃত হয়। তাই এটি আপনার কোডে ব্যবহার করার কোনও কারণ নেই।

সব জাভাস্ক্রিপ্ট ডেটা টাইপের একটি valueOf() এবং একটি toString() মেথড রয়েছে।

ভেরিয়েবল গুলো সংখ্যায় রূপান্তর করা

জাভাস্ক্রিপ্টে ৩টি মেথড রয়েছে যা ভেরিয়েবলগুলিকে সংখ্যায় রূপান্তর করতে ব্যবহার করা যেতে পারে.

  • Number() মেথড
  • parseInt() মেথড
  • parseFloat() মেথড

এই মেথডগুলো নাম্বার মেথড নয়, গ্লোবাল জাভাস্ক্রিপ্ট মেথড ।

গ্লোবাল জাভাস্ক্রিপ্ট মেথড

জাভাস্ক্রিপ্ট গ্লোবাল মেথড জাভাস্ক্রিপ্টের সব ডেটা টাইপের ক্ষেত্রে ব্যবহার করা যেতে পারে। নিচের মেথডগুলো সংখ্যা নিয়ে কাজ করার সময় সর্বাধিক ব্যবহ্রত মেথড :

Number() মেথড

Number() মেথড জাভাস্ক্রিপ্ট ভেরিয়েবলকে নাম্বারে কনভার্ট করতে ব্যবহ্রত হয়।

Number(true); // returns 1

Number(false); // returns 0

Number("10"); // returns 10

Number(" 10"); // returns 10

Number("10 "); // returns 10

Number(" 10 "); // returns 10

Number("10.33"); // returns 10.33

Number("10,33"); // returns NaN

Number("10 33"); // returns NaN

Number("John"); // returns NaN

যদি নম্বরটি কনভার্ট করা না যায়, তাহলে NaN(Not a Number) রিটার্ন হয়।

Number() মেথড তারিখ নির্ণয়ে

Number() মেথড একটি তারিখকে নাম্বারে রুপান্তর করতে পারে।

Number(new Date("2017-09-30")); // returns 1506729600000

উপরের উদাহরণে তারিখটি মিলিসেকেন্ডে রিটার্ন হয়েছে।

parseInt() মেথড

parseInt() মেথড একটি স্ট্রিংকে পার্স করে পুরো সংখ্যাটি(দশমিক মান ছাড়া) ফেরত পাঠায়। এক্ষেত্রে স্পেস ব্যবহার করা যায়। কিন্তু শুধুমাত্র প্রথম নম্বরটি ফেরত পাঠায়।

parseInt("10"); // returns 10

parseInt("10.33"); // returns 10

parseInt("10 20 30"); // returns 10

parseInt("10 years"); // returns 10

parseInt("years 10"); // returns NaN

parseFloat() মেথড

parseFloat() মেথড একটি স্ট্রিংকে পার্স করে পুরো সংখ্যাটি(দশমিক মান সহ) ফেরত পাঠায়। এক্ষেত্রে স্পেস ব্যবহার করা যায়। কিন্তু শুধুমাত্র প্রথম নম্বরটি ফেরত পাঠায়।

parseFloat("10"); // returns 10

parseFloat("10.33"); // returns 10.33

parseFloat("10 20 30"); // returns 10

parseFloat("10 years"); // returns 10

parseFloat("years 10"); // returns NaN

Number প্রোপার্টি গুলো

MAX_VALUE

ইনপুট

var x = Number.MAX_VALUE;

console.log(x);

আউটপুট

1.7976931348623157e+308

MIN_VALUE

ইনপুট

var x = Number.MIN_VALUE;

console.log(x);

আউটপুট

5e-324

POSITIVE_INFINITY

ইনপুট

var x = Number.POSITIVE_INFINITY;

console.log(x);

আউটপুট

Infinity

ইনপুট

var x = 1/0;

console.log(x);

আউটপুট

Infinity

NEGATIVE_INFINITY

ইনপুট

var x = Number.NEGATIVE_INFINITY;

console.log(x);

আউটপুট

-Infinity

NaN

ইনপুট

var x = Number.NaN;

console.log(x)

আউটপুট

NaN

NaN জাভাস্ক্রিপ্টের একটি সংরক্ষিত শব্দ যা ইঙ্গিত করে কোনও সংখ্যা সঠিক সংখ্যা নয়। সংখ্যা নয় এমন একটি স্ট্রিং দিয়ে গাণিতিক হিসাব করলে NaN (Not a number) ফলাফল আসবে।

ইনপুট

var x = 100/"apple";

console.log(x);

আউটপুট

NaN

নাম্বার প্রোপার্টি গুলো ভেরিয়েবলে ব্যবহার করা যায়না

নম্বর প্রোপার্টি গুলো জাভাস্ক্রিপ্টের নাম্বার অবজেক্ট র‍্যাপারের অন্তর্গত যাকে Number বলে। এই প্রোপার্টি গুলো কেবল Number.MAXVALUE_ হিসাবে ব্যবহার করা যায়। MyNumber.MAXVALUE_ ব্যবহার করলে (এখানে MyNumber একটি ভেরিয়েবল, এক্সপ্রেশন বা মান হতে পারে), তা undefined হয়ে ফিরে আসবে।

ইনপুট

var x = 6;

var y = x.MAX_VALUE; //y becomes undefined

console.log(y);

আউটপুট

undefined