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, কারণ অবজেক্টকে তুলনা করা যায় না
জেএস অবজেক্টকে তুলনা করা যায় না。
- পূর্ববর্তী পৃষ্ঠা জেএস স্ট্রিং টেম্পলেট
- পরবর্তী পৃষ্ঠা জেএস বিগ ইন্ট