Ignacio Vazquez-Abram সঠিক, তবে এটি কীভাবে কাজ করে তা ঠিক দেখুন ...
থেকে 15.1.2.2 parseInt (string , radix):
যখন পার্সেন্ট ফাংশন বলা হয়, নিম্নলিখিত পদক্ষেপ নেওয়া হয়:
- ইনপুটস্ট্রিং টুস্ট্রিং (স্ট্রিং) হতে দিন।
- এস এর ইনপুটস্ট্রিংয়ের নতুন নির্মিত একটি স্ট্রিং হয়ে যাক প্রথম অক্ষর যা একটি স্ট্রাইটাইটস্পেসচার নয় এবং সমস্ত অক্ষর সেই অক্ষর অনুসরণ করে। (অন্য কথায়, শীর্ষস্থানীয় সাদা স্থান সরিয়ে দিন))
- সাইন 1 হতে দিন।
- যদি এস খালি না থাকে এবং এস এর প্রথম অক্ষরটি বিয়োগ চিহ্ন হয় - তবে সাইনটি −1 হতে দিন।
- যদি এস খালি না থাকে এবং এস এর প্রথম অক্ষরটি একটি যোগ চিহ্ন + বা বিয়োগ চিহ্ন হয় - তবে এস থেকে প্রথম অক্ষরটি সরিয়ে ফেলুন S
- চলুন আর = টু আইন্ট 32 (রডিক্স)।
- স্ট্রিপপ্রফিক্স সত্য হতে দিন।
- যদি আর ≠ 0 হয়, তবে ক। যদি আর <2 বা আর> 36 হয়, তবে NaN ফিরুন। খ। যদি আর ≠ 16 হয় তবে স্ট্রিপপ্রফিক্সটি মিথ্যা হোক।
- অন্য, আর = 0 এ। আর = 10।
- স্ট্রিপপ্রফিক্স যদি সত্য হয় তবে ক। যদি এস এর দৈর্ঘ্য কমপক্ষে 2 হয় এবং এস এর প্রথম দুটি অক্ষর হয় হয় "0x" বা "0 এক্স" হয়, তবে এস থেকে প্রথম দুটি অক্ষর সরান এবং আর = 16 দিন।
- যদি এস-তে এমন কোনও অক্ষর থাকে যা কোনও র্যাডিক্স-আর অঙ্ক নয়, তবে জেডকে এই জাতীয় অক্ষরের আগে সমস্ত অক্ষর সমন্বিত এস এর সাবস্ট্রিং হতে দিন; অন্যথায়, জেড এস হতে দিন।
- জেড খালি থাকলে, ফিরিয়ে দিন এনএএন।
- গণিতকে গাণিতিক পূর্ণসংখ্যার মান হিসাবে ধরা যাক যাকে Z দ্বারা রেডিক্স-আর স্বরলিপিতে প্রতিনিধিত্ব করা হয়, 10 এবং 35 এর সাথে মানের সংখ্যার জন্য এজেড এবং অ্যাজ অক্ষর ব্যবহার করুন। (তবে, আর যদি 10 হয় এবং জেড 20 টিরও বেশি উল্লেখযোগ্য সংখ্যার সমন্বিত থাকে, প্রতিটি উল্লেখযোগ্য 20 এর পরে অঙ্কটি বাস্তবায়নের বিকল্পে 0 ডিজিটের দ্বারা প্রতিস্থাপিত হতে পারে এবং আর যদি 2, 4, 8, 10, 16, বা 32 না হয় তবে গণিতে এটি গাণিতিক পূর্ণসংখ্যার সাথে একটি বাস্তবায়ন-নির্ভর সংলগ্ন হতে পারে রেডিক্স-আর স্বরলিপিতে জেড দ্বারা প্রতিনিধিত্ব করা মান))
- গণিতের জন্য নম্বরটি মান হওয়া যাক।
- প্রতীক চিহ্ন × সংখ্যা।
দ্রষ্টব্য পার্সিয়ান্ট স্ট্রিংয়ের একটি শীর্ষস্থানীয় অংশটিকে পূর্ণসংখ্যার মান হিসাবে ব্যাখ্যা করতে পারে; এটি এমন কোনও চরিত্রকে অগ্রাহ্য করে যা কোনও পূর্ণসংখ্যার স্বরলিপি হিসাবে অংশ হিসাবে ব্যাখ্যা করা যায় না, এবং এমন কোনও অক্ষর উপেক্ষা করা হয়নি এমন কোনও ইঙ্গিত দেওয়া হয়নি।
এখানে দুটি গুরুত্বপূর্ণ অংশ রয়েছে। আমি দু'জনকেই সাহস করেছিলাম। সুতরাং সবার আগে, আমাদের toStringউপস্থাপনা কী তা খুঁজে বের করতে হবে null। আমরা তাকান প্রয়োজন Table 13 — ToString Conversionsযে তথ্যের জন্য বিভাগ 9.8.0 দেখুন:

দুর্দান্ত, সুতরাং এখন আমরা জানি যে toString(null)অভ্যন্তরীণভাবে করার ফলে একটি 'null'স্ট্রিং পাওয়া যায়। দুর্দান্ত, তবে প্রদত্ত র্যাডিক্সের মধ্যে বৈধ নয় এমন অঙ্কগুলি (অক্ষরগুলি) ঠিক কীভাবে এটি পরিচালনা করে?
আমরা উপরের দিকে তাকাই 15.1.2.2এবং আমরা নীচের মন্তব্যটি দেখতে পাই:
যদি এস-তে এমন কোনও অক্ষর থাকে যা কোনও র্যাডিক্স-আর অঙ্ক নয়, তবে জেডকে এই জাতীয় অক্ষরের আগে সমস্ত অক্ষর সমন্বিত এস এর সাবস্ট্রিং হতে দিন; অন্যথায়, জেড এস হতে দিন।
এর অর্থ হল যে আমরা সমস্ত অঙ্কগুলি PRIOR নির্দিষ্ট রেডিক্সের সাথে পরিচালনা করি এবং অন্য সমস্ত কিছু উপেক্ষা করি।
মূলত, করছেন parseInt(null, 23)একই জিনিস parseInt('null', 23)। uকারণ দুই l's উপেক্ষিত করা (যদিও তারা র্যাডিক্স 23 অংশ)। সুতরাং, আমরা কেবলমাত্র বিশ্লেষণ করতে পারি n, পুরো বিবৃতিটিকে সমার্থক করে তুলি parseInt('n', 23)। :)
যেভাবেই হোক, দুর্দান্ত প্রশ্ন!