करता है निम्नलिखित:इसका क्या अर्थ है ?: x || एक्स === {}
x || x === {}
!!x
इसका मतलब यह नहीं, कि है, x
परिभाषित किया गया है?
करता है निम्नलिखित:इसका क्या अर्थ है ?: x || एक्स === {}
x || x === {}
!!x
इसका मतलब यह नहीं, कि है, x
परिभाषित किया गया है?
तुलना कोई मतलब नहीं है यही कारण है, क्योंकि या तो x
truthy है, तो आप परिणाम x
की हो, या falsy, आप false
मिल (एक falsy मूल्य एक खाली वस्तु उदाहरण के लिए सख्त बराबर कभी नहीं है)।
एक संक्षिप्त संस्करण
x || false
मुझे x
या false
देने के लिए किया जाएगा।
आपको दाईं तरफ झूठा मिलेगा क्योंकि एक्स को {} के संदर्भ के रूप में तुलना की जाती है। @ टोमाज़ लेवोवस्की ने नीचे भी निर्दिष्ट किया है। –
@RazvanDumitru यही कारण है कि उसने 'झूठी' –
लिखा है, लेकिन शुरुआत के लिए यह किसी भी तरह से अंतिम परिणाम पर सीधे जाने के लिए संदिग्ध है। –
||
एलएचएस एक वास्तविक मूल्य है तो बाएं हाथ की तरफ लौटाता है। तो यदि x
एक वास्तविक मूल्य है, तो यह x
देता है।
अन्यथा, यह x
की तुलना किसी नए ऑब्जेक्ट से करता है, जो हमेशा false
होगा, और उसे वापस कर देगा।
तो यदि x
सत्य है, तो आपको (एक अनमोडिफाइड) x
मिलता है अन्यथा आपको एक स्पष्ट बूलियन false
मिलता है।
यह !!x
से अलग है क्योंकि x
x
एक वास्तविक मूल्य था, तो यह एक बूलियन true
लौटाएगा।
x || x === {}
का मूल रूप से x || false
है।
!!x
का अर्थ है "x
truthy है", तो यह बिल्कुल वैसा ही नहीं है - x || x === {}
x
वापस आ जाएगी अगर x
truthy है। इसी मामले में, !!x
true
लौटाएगा।
||
ऑपरेटर का अर्थ है "अगर बाईं ओर truthy है (, नहीं null
undefined
नहीं, 0
आदि नहीं - विवरण के लिए All falsey values in JavaScript देखें) बाईं ओर लौटने, और दाईं ओर लौटने"।
दाईं ओर पर आप x === {}
है जो हमेशा false
को मूल्यांकन करता है, सख्त तुलना के बाद से तुलना करने का मतलब संदर्भ के लिहाज से
!!x
और x || x === {}
(यानी, "x
जो सच नहीं है {}
रूप में एक ही वस्तु है, है) होगा एक ही केवल तभी x === true
या x === false
इस एक सा .... http मदद कर सकता है हो सकता है: //stackoverflow.com/questions/3563153/what-does-var-xx – BobSki
के बाद से '{}' डॉन truthy है, मैं उपरोक्त कोड का बिंदु नहीं देखें ... –
यह एक डुप्लिक नहीं है ई, तुलना के कारण। –