मैं सिर्फ Underscore.js की _.isEqual
समारोह को देख रहा था और कोड का एक वर्ग कुछ इस तरह चला जाता है:क्या यह लाइन अंडरस्कोर.जेएस से समानता जांच कर रही है?
if (a === b) return true;
if (typeof a !== typeof b) return false;
if (a == b) return true;
मैं बस वहाँ किसी भी मामले में जहां तीसरे बयान पहुंचा जा सकता है, तो सोच रहा हूँ और true
का मूल्यांकन?
संपादित करें: बस स्पष्ट होना, यह मेरी अपनी कोड के बारे में मैं, मैं, अंडरस्कोर के स्रोत पढ़ रहा हूँ, विशेष रूप से this line बात कर रहा हूँ नहीं है और मैं क्यों वे वह कर रहे हैं के बारे में उत्सुक था।
कुछ अजीब किनारे का मामला होना चाहिए जहां यह संभव है ... –
@nickf: यह मानते हुए कि '==' और '===' समान हैं जब प्रकार समान हैं, मैं नहीं देख सकता कि पहला और तीसरा परीक्षण कभी भी एक अलग परिणाम प्रदान करेगा। यहां तक कि 'शून्य' के मामले में जहां 'टाइपोफ़' आंतरिक 'टाइप' से भिन्न होता है, यह' अपरिभाषित 'को छोड़कर किसी भी मूल्य पर सहभागिता नहीं करता है, जिसमें एक अलग' टाइपफ़' मान होता है। और यदि वहाँ * कुछ किनारे का मामला है, तो आप कैसे जानते हैं कि आप इसे चाहते हैं? बस एक ही मूल्य के '==' और' === 'परीक्षण के लिए अजीब लगता है। या तो आप प्रकार जबरन करना चाहते हैं या आप नहीं करते हैं। – user113716
... मुझे यह स्पष्ट करना चाहिए कि उपरोक्त टिप्पणी में * "आप" * द्वारा, मेरा मतलब * निक * *, बल्कि * एक व्यक्ति * को इंगित करने का मतलब नहीं था। – user113716