এটি কেবল নন-সংখ্যাগুলিকে সংখ্যায় রূপান্তরিত করে না, এটি তাদের এমন নম্বরগুলিতে রূপান্তর করে যা 32-বিট স্বাক্ষরযুক্ত ইনট হিসাবে প্রকাশ করা যেতে পারে।
যদিও জাভাস্ক্রিপ্ট এর নাম্বার ডাবল স্পষ্টতা ভাসে (*), bitwise অপারেটরদের হয় ( <<
, >>
, &
, |
এবং ~
) 32-বিট ইন্টিজার উপর অপারেশন পদ সংজ্ঞায়িত করা হয়। কিছুটা অপারেশন করা এই সংখ্যাটি 32-বিট স্বাক্ষরিত ইনটকে রূপান্তরিত করে, 32 টির চেয়ে কোনও ভগ্নাংশ এবং উচ্চ-স্থান বিট হারিয়ে, গণনা করার আগে এবং পরে সংখ্যায় ফিরে রূপান্তরিত করে।
সুতরাং 0 বিটের ডানদিকের শিফ্টের মতো কোনও প্রকৃত প্রভাব ছাড়াই বিটওয়াস অপারেশন করা কোনও >>0
সংখ্যাকে গোল করা এবং এটি 32-বিট ইনট রেঞ্জে রয়েছে তা নিশ্চিত করার একটি দ্রুত উপায়। তদ্ব্যতীত, ট্রিপল >>>
অপারেটর, স্বাক্ষরবিহীন অপারেশন করার পরে, তার গণনার ফলাফলগুলি অন্যদের স্বাক্ষরিত পূর্ণসংখ্যার চেয়ে স্বাক্ষরিত পূর্ণসংখ্যার হিসাবে রূপান্তর করে, সুতরাং এটি 32-বিট-টু-পরিপূরককে নেতিবাচক রূপান্তর করতে ব্যবহার করা যেতে পারে একটি বড় সংখ্যা হিসাবে সংস্করণ। >>>0
ব্যবহারটি নিশ্চিত করে যে আপনি 0 এবং 0xFFFFFFFF এর মধ্যে একটি পূর্ণসংখ্যা পেয়েছেন।
এই ক্ষেত্রে এটি দরকারী কারণ ECMAScript 32 বিট স্বাক্ষরযুক্ত ইনটগুলির ক্ষেত্রে অ্যারে সূচকগুলি সংজ্ঞায়িত করে। সুতরাং আপনি যদি এমনভাবে বাস্তবায়ন করার চেষ্টা করছেন array.filter
যা ইসমাস্ক্রিপ্ট পঞ্চম সংস্করণের মান যা বলে ঠিক হুবহু ডুপ্লিকেট করে, আপনি এই সংখ্যাটি 32-বিট স্বাক্ষরযুক্ত ইন্টিতে নিক্ষেপ করবেন।
(বাস্তবে এই জন্য সামান্য ব্যবহারিক প্রয়োজন আশা মানুষ সেটিং করা যাচ্ছে না যেমন array.length
করতে 0.5
, -1
, 1e21
বা 'LEMONS'
। কিন্তু এই জাভাস্ক্রিপ্ট লেখক আমরা যে বিষয়ে কথা বলছি তাই আপনি জানেন না হয়, ...)
সারসংক্ষেপ:
1>>>0 === 1
-1>>>0 === 0xFFFFFFFF -1>>0 === -1
1.7>>>0 === 1
0x100000002>>>0 === 2
1e21>>>0 === 0xDEA00000 1e21>>0 === -0x21600000
Infinity>>>0 === 0
NaN>>>0 === 0
null>>>0 === 0
'1'>>>0 === 1
'x'>>>0 === 0
Object>>>0 === 0
* উপকারিতা.)