मैंने एक अन्य StackOverflow पोस्ट पर इस सिंटैक्स को देखा और यह करने के लिए उत्सुक था:
var len = this.length >>> 0;
क्या मतलब >>>है?
मैंने एक अन्य StackOverflow पोस्ट पर इस सिंटैक्स को देखा और यह करने के लिए उत्सुक था:
var len = this.length >>> 0;
क्या मतलब >>>है?
>>>हमेशा साइन बिट को शून्य पर सेट करें, भले ही आप शून्य बिट द्वारा शिफ्ट हों।
>>>ऑपरेटर का उपयोग क्यों करते हैं : stackoverflow.com/questions/3081987/…
var length = list.length >>> 0; (आपके एक के रूप में एक ही उपयोग का मामला)
जवाबों:
यह एक अहस्ताक्षरित अधिकार शिफ्ट ऑपरेटर है । दिलचस्प बात यह है कि यह केवल बिटकॉइन ऑपरेटर है जो जावास्क्रिप्ट में अहस्ताक्षरित है।
>>> संचालक अभिव्यक्ति 2 में निर्दिष्ट बिट्स की संख्या द्वारा सही अभिव्यक्ति 1 के बिट्स को स्थानांतरित करता है। शून्य को बाईं ओर से भरा जाता है। दाईं ओर स्थानांतरित अंकों को खारिज कर दिया जाता है।
इसके अभिप्राय को अनदेखा करते हुए, यह सबसे अधिक संभावना है कि आप इसका उपयोग कहां देखेंगे:
>>> 0 यह अद्वितीय है कि यह एकमात्र ऑपरेटर है जो किसी भी प्रकार को धनात्मक पूर्णांक में परिवर्तित करेगा:
"string" >>> 0 == 0
(function() { }) >>> 0 == 0
[1, 2, 3] >>> 0 == 0
Math.PI >>> 0 == 3
आपके उदाहरण में var len = this.length >>> 0, यह एक पूर्णांक लंबाई प्राप्त करने का एक तरीका है this, जो कुछ भी this.lengthहो सकता है , इसे पुनरावृत्त करने के लिए उपयोग करना ।
इसी तरह, ~~xकिसी भी चर को एक हस्ताक्षरित पूर्णांक में बदलने के लिए उपयोग किया जा सकता है।
वह ऑपरेटर एक तार्किक अधिकार है। यहां नंबर को 0 बिट्स शिफ्ट किया गया है। गणितीय रूप से शून्य बिट की शिफ्ट का कोई प्रभाव नहीं होना चाहिए।
लेकिन यहां इसका उपयोग मान को एक अहस्ताक्षरित 32 बिट पूर्णांक में परिवर्तित करने के लिए किया जाता है।
>>>एक बिट-बुद्धिमान ऑपरेटर है, शून्य-सही दाएं शिफ्ट ।
मुझे लगता है कि >>> 0एक सकारात्मक संख्या पर इसका एकमात्र प्रभाव निकटतम पूर्णांक तक गोल करना है, उसी तरह Math.floor()। मैं यह नहीं देखता कि आपके उदाहरण में यह क्यों आवश्यक होगा, क्योंकि आम तौर पर एक .lengthसंपत्ति (जैसे Array) पहले से ही पूर्णांक होगी।
मैं भी थोड़ा कम देखा है ~~उसी तरह से प्रयोग किया है: ~~9.5 == 9; // true।
Math.abs()कि नकारात्मक संख्याओं के लिए उपयोग किया जाता है।
>>> 0एक ऋणात्मक संख्या पर करते हैं तो इसे 2 की तारीफ में बदल देता है, फिर सही बदलाव करता है। इसलिए -14 >>> 0 == 1073741820। ( msdn.microsoft.com/en-us/library/342xfs5s%28v=vs.94%29.aspx )
parseInt?