আমি লিখেছিলাম এমন কিছু কোডে আমি এই সমস্যাটি নিয়ে কাজ করছি। আমার সমাধানটি ছিল খানিকটা ব্যবহার করা এবং।
var j = bool & 1;
একটি ধ্রুবক সমস্যা মোকাবেলার একটি দ্রুত উপায় হ'ল একটি ফাংশন তৈরি করা। এটি অন্যান্য লোকেদের দ্বারা আরও পঠনযোগ্য, রক্ষণাবেক্ষণের পর্যায়ে বোঝার জন্য আরও ভাল এবং কিছু ভুল লেখার সম্ভাবনা থেকে মুক্তি পান।
function toInt( val ) {
return val & 1;
}
var j = toInt(bool);
সম্পাদনা করুন - 10 সেপ্টেম্বর, 2014
কোনও কারণে টার্মিনেট অপারেটরটি অপারেটরটির সাথে অভিন্ন হিসাবে কোনও রূপান্তর ক্রোমে দ্রুততর হয় না। এটি কেন দ্রুততর তা সম্পর্কে কোনও ধারণা দেয় না তবে আমি মনে করি এটি নিম্ন স্তরের অপ্টিমাইজেশনের কিছু ধরণের যা পথের কোথাও অর্থবোধ করে।
var j = boolValue === true ? 1 : 0;
নিজের জন্য পরীক্ষা করুন: http://jsperf.com/boolean-int-conversion/2
ফায়ারফক্স এবং ইন্টারনেট এক্সপ্লোরারে, আমি পোস্ট করা সংস্করণটি সাধারণভাবে দ্রুত ব্যবহার করা হয়।
সম্পাদনা করুন - 14 ই জুলাই, 2017
ঠিক আছে, আমি আপনাকে কোনটি ব্যবহার করা উচিত বা ব্যবহার করা উচিত নয় তা বলতে যাচ্ছি না। প্রতিটি ফ্রিকিং ব্রাউজার প্রতিটি পদ্ধতির সাহায্যে অপারেশনটি কত দ্রুত করতে পারে তা উপরে ও নিচে চলেছে। এক পর্যায়ে ক্রোমের প্রকৃতপক্ষে বিটওয়াইস এবং সংস্করণটি অন্যদের চেয়ে ভাল কাজ করেছে তবে হঠাৎ এটির অবস্থা আরও খারাপ হয়েছিল। আমি জানি না তারা কী করছে তাই আমি কে এটি যত্নশীল তা রেখে যাচ্ছি। এরকম কোনও অপারেশন কীভাবে দ্রুত করা হয় সে সম্পর্কে খুব কমই দেখাশোনার কারণ নেই। এমনকি মোবাইলে এটি কিছুই নয় operation
এছাড়াও, এখানে 'টু ইন্ট' প্রোটোটাইপ যুক্ত করার জন্য একটি নতুন পদ্ধতি যা ওভাররাইট করা যায় না।
Object.defineProperty(Boolean.prototype, "toInt", { value: function()
{
return this & 1;
}});