ईसीएमएस्क्रिप्ट विनिर्देश के अनुसार, the unary logical NOT operator (!
) और the Boolean()
functionthe internal function ToBoolean()
का उपयोग करें, और न ही ऑपरेटर परिणाम को उलट करने के लिए कुछ चेक भी करता है। तो Boolean()
फ़ंक्शन चलाने से एक डबल लॉजिकल ऑपरेशन much faster क्यों है?बूलियन() जावास्क्रिप्ट में इतना धीमा क्यों है?
मैं परीक्षण करने के लिए जो था कोड का निम्न भाग का इस्तेमाल किया तेजी से:
function logicalNotOperator() {
var start = performance.now();
for (var i = 0; i < 9999999; i++) !!Math.random();
return 0.001 * (performance.now() - start);
}
function booleanFunc() {
var start = performance.now();
for (var i = 0; i < 9999999; i++) Boolean(Math.random());
return 0.001 * (performance.now() - start);
}
नोट: मैं new Boolean()
निर्माता की बात नहीं कर रहा हूँ, लेकिन Boolean()
समारोह है कि तर्क यह एक बूलियन करने के लिए दिया है coerces ।
* "बहुत तेजी से" * - कुछ सबूत? – dfsq
बूलियन() या नया बूलियन()? – StarPinkER
'बूलियन()' को प्रत्येक कॉल के लिए एक नया निष्पादन संदर्भ बनाने की घंटी और सीटी के माध्यम से जाना है, जहां '!! सच' नहीं है; मैं * अनुमान लगाता हूं कि यह वह जगह है जहां समय के *** *** *** खर्च किए जाते हैं। – Matt