JavaScript সংখ্যা

জেভাস্ক্রিপ্টে একমাত্র সংখ্যা ধরন রয়েছে

সংখ্যা লিখার সময় ছোট বা বড় ডিজিটাল পয়েন্ট দিতে পারেন

জেভাস্ক্রিপ্ট সংখ্যা

书写 JavaScript 数值既可以带小数点,也可以不带:

ইনস্ট্যান্স

জেভাস্ক্রিপ্টের সংখ্যা লেখা হতে পারে কোনোভাবেই দশমিক থাকা কিংবা না থাকা
var x = 3.14;    // দশমিক থাকা সংখ্যা

আপনার নিজেই চেষ্টা করুন

var y = 3; // অভাব থাকা না কোনো দশমিক সংখ্যা

ইনস্ট্যান্স

অত্যন্ত বড় বা অত্যন্ত ছোট সংখ্যা বৈজ্ঞানিক গণিতের মাধ্যমে লেখা হতে পারে:
var x = 123e5;    // 12300000

আপনার নিজেই চেষ্টা করুন

var y = 123e-5; // 0.00123

JavaScript-এর সংখ্যা সর্বদা 64 বিটের ফ্লোটিং পয়েন্ট

অনেক অন্যান্য প্রোগ্রামিং ভাষার থেকে ভিন্ন, JavaScript-এর সংখ্যা প্রকার নির্দিষ্ট করে না, যেমন পূর্ণ সংখ্যা, স্বল্প, লম্বা, ফ্লোটিং পয়েন্ট ইত্যাদি。

JavaScript-এর সংখ্যা সর্বদা ডবল প্রেসিশন ফ্লোটিং পয়েন্ট দ্বারা স্টোরেজ করা হয়, আন্তর্জাতিক IEEE 754 প্রমাণপত্র অনুযায়ী。

এই ফরম্যাট 64 বিটে স্টোরেজ করে, 0 থেকে 51 বিট সংখ্যা (ফ্র্যাকশন/ম্যান্টিসা) সংরক্ষণ করে, 52 থেকে 62 বিট সংখ্যা সংরক্ষণ করে, 63 বিট সংজ্ঞা সংরক্ষণ করে: সংখ্যা সংজ্ঞা
52 bits(0 - 51) 11 bits (52 - 62) 1 bit (63)

পরিমাপ

পূর্ণ সংখ্যা (কোনো ইনডেক্স বা বৈজ্ঞানিক গণিত ব্যবহার না করে) 15 ডিজিট পর্যন্ত সতর্কতাপূর্বক থাকে。

ইনস্ট্যান্স

var x = 999999999999999;   // x হবে 999999999999999
var y = 9999999999999999;  // y হবে 10000000000000000

আপনার নিজেই চেষ্টা করুন

দশমিক সংখ্যার সর্বোচ্চ পরিমাণ 17 ডিজিট, কিন্তু ফ্লোটিং পয়েন্ট গণিত সর্বদা 100% নিষ্পক্ষ নয়:

ইনস্ট্যান্স

var x = 0.2 + 0.1;         // x হবে 0.30000000000000004

আপনার নিজেই চেষ্টা করুন

একটি সমস্যা সমাধান করতে গুণ এবং ভাগ ব্যবহার করা হয়:

ইনস্ট্যান্স

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x হবে 0.3

আপনার নিজেই চেষ্টা করুন

সংখ্যা এবং শব্দসৃষ্টির যোগ

সতর্কতা !!

JavaScript-এর যোগ এবং সংযুক্তি (concatenation) উভয়ই + অপারেটর ব্যবহার করে।

সংখ্যা যোগ দিয়ে ব্যবহার করা হয়। শব্দসৃষ্টি সংযুক্তির মাধ্যমে ব্যবহার করা হয়。

আপনি যদি দুই সংখ্যা যোগ করেন, তবে ফলাফলটি একটি সংখ্যা হবে:

ইনস্ট্যান্স

var x = 10;
var y = 20;
var z = x + y;           // z হবে 30 (একটি সংখ্যা)

আপনার নিজেই চেষ্টা করুন

দুই শব্দসৃষ্টির সাথে যোগ করলে, ফলাফলটি একটি শব্দসৃষ্টির সংযুক্তি হবে:

ইনস্ট্যান্স

var x = "10";
var y = "20";
var z = x + y;           // z হবে 1020(শব্দ)

আপনার নিজেই চেষ্টা করুন

আপনি যদি একটি সংখ্যা এবং একটি শব্দসৃষ্টির সাথে যোগ করেন, তবে ফলাফলটি শব্দসৃষ্টির সংযুক্তি হবে:

ইনস্ট্যান্স

var x = 10;
var y = "20";
var z = x + y;           // z হবে 1020 (একটি শব্দসৃষ্টি)

আপনার নিজেই চেষ্টা করুন

যদি একটি শব্দ এবং সংখ্যা যোগ করেন, তবে ফলাফলও শব্দ সৃষ্টি হবে:

ইনস্ট্যান্স

var x = "10";
var y = 20;
var z = x + y;           // z হবে 1020(শব্দ)

আপনার নিজেই চেষ্টা করুন

সাধারণত এই ভুল মনে করা হয় যে ফলাফল 30 হবে:

ইনস্ট্যান্স

var x = 10;
var y = 20;
var z = "The result is: " + x + y;

আপনার নিজেই চেষ্টা করুন

সাধারণত এই ভুল মনে করা হয় যে ফলাফল 102030 হবে:

ইনস্ট্যান্স

var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;

আপনার নিজেই চেষ্টা করুন

JavaScript-এর পদ্ধতি হল ডান থেকে বাম পদ্ধতিতে ক্রিয়াকরণ

কারণ x এবং y সকলই সংখ্যা, 10 + 20 সংযোজিত হবে

কারণ z একটি শব্দ, 30 + "30" সৃষ্টি হবে

সংখ্যা শব্দ

JavaScript-এর শব্দকোষটি সংখ্যাসমূহ ধারণ করতে পারে

var x = 100;         // x হবে সংখ্যা
var y = "100";       // y হবে শব্দ

সকল সংখ্যা গণিতে, JavaScript-এর পদ্ধতি হল শব্দকোষকে সংখ্যা হিসাবে রূপান্তর করা

এই উদাহরণটি এভাবে চলবে:

var x = "100";
var y = "10";
var z = x / y;       // z হবে 10

আপনার নিজেই চেষ্টা করুন

এই উদাহরণটিও এভাবে চলবে:

var x = "100";
var y = "10";
var z = x * y;       // z হবে 1000

আপনার নিজেই চেষ্টা করুন

এই উদাহরণটি এভাবে চলবে:

var x = "100";
var y = "10";
var z = x - y;      // z হবে 90

আপনার নিজেই চেষ্টা করুন

কিন্তু এই উদাহরণটি এভাবে চলবে না:

var x = "100";
var y = "10";
var z = x + y;       // z হবে 110 নয়, বরং 10010

আপনার নিজেই চেষ্টা করুন

সর্বশেষ উদাহরণে, JavaScript-এর + অপারেটরটি শব্দকোষকে ক্রিয়াকরণ করে

NaN - অসংখ্যা

NaN এটি JavaScript-এর সংরক্ষিত শব্দ, যা একটি সংখ্যাকে নৈতিক নয় বলে ইঙ্গিত করে

একটি অসংখ্যা শব্দকোষের সঙ্গে বিভাজন প্রচেষ্টা করলে NaN(Not a Number) পাওয়া যাবে:

ইনস্ট্যান্স

var x = 100 / "Apple";  // x হবে NaN(Not a Number)

আপনার নিজেই চেষ্টা করুন

কিন্তু, যদি শব্দকোষটি সংখ্যাসমূহ ধারণ করে, তবে ফলাফল হবে সংখ্যা:

ইনস্ট্যান্স

var x = 100 / "10";     // x হবে 10

আপনার নিজেই চেষ্টা করুন

আপনি সার্বজনীন JavaScript ফাংশনটি ব্যবহার করতে পারেন isNaN() একটি মানের কিনা সংখ্যা হয়েছে তা নির্ণয় করতে:

ইনস্ট্যান্স

var x = 100 / "Apple";
isNaN(x);               // প্রত্যাহার করে true, কারণ x একটি সংখ্যা নয়

আপনার নিজেই চেষ্টা করুন

দৃঢ়তার সাথে NaNযদি আপনি গণিতীয় ক্রিয়ায় NaNতাহলে ফলাফলও হবে NaN

ইনস্ট্যান্স

var x = NaN;
var y = 5;
var z = x + y;         // z হবে NaN

আপনার নিজেই চেষ্টা করুন

ফলাফলটি হতে পারে

ইনস্ট্যান্স

var x = NaN;
var y = "5";
var z = x + y;         // z হবে NaN5

আপনার নিজেই চেষ্টা করুন

NaN হল সংখ্যাtypeof NaN ফলাফল number

ইনস্ট্যান্স

typeof NaN;             // ফলাফল "number"

আপনার নিজেই চেষ্টা করুন

Infinity

Infinity (অথবা -Infinity)হল যেটি JavaScript-এর গণনায় সবচেয়ে বড় সংখ্যার সীমা অতিক্রম করলে ফিরিয়ে দেয়

ইনস্ট্যান্স

var myNumber = 2;
while (myNumber != Infinity) {          // সমাপ্ত হয় না পর্যন্ত Infinity
    myNumber = myNumber * myNumber;
}

আপনার নিজেই চেষ্টা করুন

0 (শূন্য) দ্বারা ভাগ করাও ফলাফল করে Infinity

ইনস্ট্যান্স

var x =  2 / 0;          // x হবে Infinity
var y = -2 / 0;          // y হবে -Infinity

আপনার নিজেই চেষ্টা করুন

Infinity হল সংখ্যা:typeOf Infinity ফলাফল number

ইনস্ট্যান্স

typeof Infinity;        // ফলাফল "number"

আপনার নিজেই চেষ্টা করুন

ষড়দশিত

JavaScript-এর সাথে প্রাথমিক কোড 0x সংখ্যা স্থিরকে ষড়দশিত হিসাবে তুলনা করে

ইনস্ট্যান্স

var x = 0xFF;             // x হবে 255

আপনার নিজেই চেষ্টা করুন

কোনও সংখ্যা শুরুতে ০ লিখতে পারেন না (যেমন 07)

কিছু JavaScript সংস্করণ প্রাথমিক শূন্য দিয়ে সংখ্যা অষ্টমিক হিসাবে তুলনা করে

ডিফল্টভাবে, Javascript-এর সংখ্যা দশমিক হিসাবে প্রকাশ করে

কিন্তু আপনি ব্যবহার করতে পারেন toString() এই পদ্ধতি সংখ্যা ষড়দশিত, আটকোটি অথবা দ্বিতীয় সিদ্ধান্তে প্রকাশ করে

ইনস্ট্যান্স

var myNumber = 128;
myNumber.toString(16);     // ফলাফল 80
myNumber.toString(8);      // ফলাফল 200
myNumber.toString(2);      // ফলাফল 10000000

আপনার নিজেই চেষ্টা করুন

সংখ্যা একটি অবজেক্ট হতে পারে

সাধারণত, JavaScript-এর সংখ্যা লিখিত বৈধ মূল্য দিয়ে তৈরি হয়: var x = 123

কিন্তু নিউ কোয়ালিসকে দ্বারা তৈরি করা হয় নিউ হিসেবে অবজেক্ট ডিফাইন করা হয়: var y = new Number(123)

ইনস্ট্যান্স

var x = 123;
var y = new Number(123);
// typeof x returns number
// typeof y returns object

আপনার নিজেই চেষ্টা করুন

অপেক্ষাকৃত বলতে, সংখ্যা অবজেক্ট তৈরি করবেন না।এটি কার্যকরীতা ধীর করতে পারে。

নিউ নিউ কোয়ালিসকে ব্যবহার করা, কোডটিকে জটিল করে এবং অপরিকল্পিত ফলাফল সৃষ্টি করে:

যখন আপনি == সমান অপারেটরের সময়, সমান সংখ্যাগুলি একই মানের ভাবে দেখা হয়:

ইনস্ট্যান্স

var x = 500;             
var y = new Number(500);
// (x == y) true, কারণ x এবং y এর মান একই

আপনার নিজেই চেষ্টা করুন

যখন আপনি === সমান অপারেটরের পরে, সমান সংখ্যাগুলি সমান নয় হয় কারণ === অপারেটরকে ধরন এবং মান উভয়ই সমান হতে হয়。

ইনস্ট্যান্স

var x = 500;             
var y = new Number(500);
// (x === y) false, কারণ x এবং y এর ধরন ভিন্ন

আপনার নিজেই চেষ্টা করুন

যথেষ্ট খারাপও।অবজেক্টকে তুলনা করা যায় না:

ইনস্ট্যান্স

var x = new Number(500);             
var y = new Number(500);
// (x == y) false, কারণ অবজেক্টকে তুলনা করা যায় না

আপনার নিজেই চেষ্টা করুন

জেএস অবজেক্টকে তুলনা করা যায় না。