एमडीसी ==
ऑपरेटर का वर्णन इस प्रकार है :
यदि दो ऑपरेंड एक ही प्रकार के नहीं हैं, तो जावास्क्रिप्ट ऑपरेंड्स को परिवर्तित करता है और इसके बाद सख्त तुलना करता है। यदि या तो ऑपरेंड एक नंबर या बूलियन है, तो ऑपरेंड संभव होने पर नंबर में बदल जाते हैं; या तो अगर ऑपरेंड एक स्ट्रिंग है, तो अन्य ऑपरेंड को यदि संभव हो तो स्ट्रिंग में बदल दिया जाता है।
इसे ध्यान में रखते हुए, मैं "true" == true
इस प्रकार मूल्यांकन करूंगा :
- क्या वे एक ही प्रकार के हैं? नहीं
- या तो ऑपरेंड एक नंबर है या बूलियन? हाँ
- क्या हम दोनों को एक संख्या में बदल सकते हैं? नहीं (
isNaN(Number("true")) // true
) - या तो ऑपरेंड एक स्ट्रिंग है? हाँ
- क्या हम दूसरे ऑपरेंड को स्ट्रिंग में बदल सकते हैं? हाँ (
String(true) === "true" // true
)
मैंने स्ट्रिंग्स के साथ समाप्त किया है "true"
और "true"
, जिसका मूल्यांकन करना चाहिए true
, लेकिन जावास्क्रिप्ट गलत दिखाता है।
मुझे क्या याद किया?