"जावा में, बिटवाइज़ ऑपरेटर्स पूर्णांकों के साथ काम करते हैं। जावास्क्रिप्ट पूर्णांक नहीं है। यह केवल डबल परिशुद्धता चल बिन्दु संख्या। तो, बिटवाइज़ ऑपरेटर्स उनकी संख्या ऑपरेंड पूर्णांक में बदल गया है, उनके व्यापार करते हैं, और उसके बाद उन्हें वापस परिवर्तित करें। अधिकांश भाषाओं में, ये ऑपरेटर हार्डवेयर के बहुत करीब हैं और बहुत तेज़ हैं। जावास्क्रिप्ट में, वे हार्डवेयर से बहुत दूर हैं और बहुत धीमे हैं। जावास्क्रिप्ट का शायद ही कभी कम हेरफेर करने के लिए उपयोग किया जाता है। " - डगलस Crockford, Javascript: The Good Parts
मुद्दा यह है कि क्या तुम सच में बिटवाइज़ ऑपरेटर्स का उपयोग करने के किसी भी कारण नहीं है। बस 2^numbits द्वारा गुणा या विभाजित करें।
आपका कोड होना चाहिए:
for(var j = 0; j < 64; j++) {
mask = mask * 2;
console.log(mask);
}
या आम तौर पर:
function lshift(num, bits) {
return num * Math.pow(2,bits);
}
आप अंदाजा हो।
जेएसपेर्फ ने कहा नहीं। http://jsperf.com/multiply-vs-divide/9 – Shinjikun