कुछ हफ्ते पहले, मैंने में तुलना ऑपरेटर के बारे में इस धागे को Is < faster than <=? पढ़ा है। ऐसा कहा जाता था कि <
और <=
के बीच प्रदर्शन में कोई अंतर नहीं है क्योंकि उन्हें समान/समान मशीन कमांड के रूप में व्याख्या किया गया है।जावास्क्रिप्ट - === बनाम == ऑपरेटरों का प्रदर्शन
उसी समय, हमारी कंपनी के "सर्वोत्तम प्रथाओं" में, यह कहा गया था कि हमें हमेशा "===" की बजाय चीजों की तुलना करने के लिए "===" का उपयोग करना चाहिए। इसलिए, मुझे आश्चर्य हुआ कि यह हमेशा उपयुक्त है क्योंकि मुझे "==" और "टाइपोफ़ ... ==" का उपयोग करने के लिए उपयोग किया जाता है और मैं अपना लेखन तरीका नहीं बदलना चाहता: -]
ध्यान दें कि यह जावास्क्रिप्ट के संदर्भ में है।
तो, मैं एक छोटे से अनुसंधान किया है और यहां Which equals operator (== vs ===) should be used in JavaScript comparisons? यह कहा जाता है कि:
इसका कारण यह है समानता ऑपरेटर == बलात्कार ... जिसका अर्थ है दुभाषिया परोक्ष मूल्यों कन्वर्ट करने के लिए कोशिश करता है कि टाइप करता है और फिर तुलना करता है।
दूसरी ओर, पहचान ऑपरेटर === प्रकार बलात्कार करना नहीं है, और इसलिए इस प्रकार यह मान के मूल्यों परिवर्तित नहीं करता है जब
की तुलना और मैं इस करता है, तो आश्चर्य करने के लिए शुरू इसका मतलब है कि जब मैं "===" ऑपरेटर का उपयोग करता हूं, तो मुझे अच्छा प्रदर्शन मिलेगा क्योंकि ऑपरेटरों को बदलने पर कोई संसाधन खर्च नहीं किया जाएगा। और सभी कोड मशीन कमांड में बदल दिए जाने के बाद, इसका मतलब यह है कि C
में कोई फर्क नहीं पड़ता है जब आप <
और <=
का उपयोग करते हैं, तो यह जावास्क्रिप्ट और अन्य भाषाओं में समान है?
नरक में पथ सूक्ष्म अनुकूलन के साथ पक्का है। – asawyer
"और सभी कोडिंग के बाद मशीन कमांड में बदल जाता है" लेकिन अलग-अलग भाषाओं में हर एक ही निर्देश जरूरी नहीं है कि वह उसी मशीन कोड में बदल जाए। – BoltClock
इस पोस्ट को देखने का प्रयास करें: http://stackoverflow.com/questions/8044750/javascript-performance-difference-between-double-equals-and-triple-equals – Chase