if($summary = get_post_summary()) { return $summary; }मैं जिस स्थिति का उल्लेख कर रहा हूं वह किसी शर्त के अंदर असाइनमेंट है। चालाक रूप से, यह जावास्क्रिप्ट में भी किया जा सकता है, हालांकि यह बहुत कम आम है:
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }पहली नज़र में आपको यह सोचने के लिए माफ कर दिया जाएगा कि यह एक टाइपो है! दरअसल, कुछ डिबगर्स एक चेतावनी के साथ झंडा लगाएंगे, यह पूछते हुए कि क्या आप समानता (==) के लिए एक परीक्षण का मतलब है और इसे असाइनमेंट (=) के रूप में गलत बताया है। लेकिन यह कोई गलती नहीं है - इसे समझने की कुंजी दो चीजों को समझने के लिए है : सबसे पहले, असाइनमेंट एक मान (आपके द्वारा निर्दिष्ट मान) देता है। दूसरा और सबसे महत्वपूर्ण बात यह है कि यह जो मूल्य लौटाता है वह सही या गलत का मूल्यांकन करता है, और अंततः यह निर्धारित करता है कि स्थिति गुजरती है या नहीं। अब, DOM मूल्यांकन और traversal की दुनिया में, यह तकनीक एक सुरक्षित और अनुमानित है क्योंकि DOM नोड्स या तो मौजूद हैं या वे शून्य हैं - और गलत का मूल्यांकन करने के लिए शून्य की आवश्यकता है । इसलिए ऊपर दिए गए कोड उदाहरण में, स्थिति सच का मूल्यांकन करेगी यदि "#पोस्ट-समरी" तत्व मौजूद है, या यदि यह नहीं है, तो गलत है। समान रूप से, आप एक अज्ञात पदानुक्रम को पुनरावृत्त करने के लिए एक ही चाल का उपयोग कर सकते हैं, जबकि क्रमिक माता -पिता के माध्यम से, जबकि () का उपयोग करते हैं। यह उदाहरण एक घटना लक्ष्य और #Document के बीच प्रत्येक नोड नाम का एक सरणी बनाता है:
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)लेकिन जावास्क्रिप्ट में कहीं और, आप अपने आप को बहुत कम विश्वसनीय क्षेत्र में पा सकते हैं, क्योंकि कितने सही या कितने झूठे मान हो जाते हैं बिल्कुल भी नहीं सहज ज्ञान युक्त। सकारात्मक और नकारात्मक दोनों संख्याएं, उदाहरण के लिए, शून्य और नान को छोड़कर सच का मूल्यांकन करें । और विचित्र रूप से, एक वस्तु बूलियन कंस्ट्रक्टर के साथ बनाया गया हमेशा सच का मूल्यांकन करता है, भले ही यह नए बूलियन (गलत) के रूप में बनाया गया हो! तो चेतावनी दी! इस तरह के वाक्यविन्यास के लिए नहीं है; न ही इसका उपयोग एक घुड़सवार तरीके से किया जाना चाहिए, प्रकार के रूपांतरण और मनमाना मूल्यों की कास्टिंग पर ओवररेक्शन के साथ। लेकिन उपयुक्त परिस्थितियों में अच्छी तरह से उपयोग किया जाता है, यह तेजी से और दुबला कोड का उत्पादन करने के लिए कई स्थितियों को सरल बना सकता है। ] ]
प्रोग्रामिंग में किसी शर्त के अंदर एक असाइनमेंट क्या है? यह जावास्क्रिप्ट, सी और पायथन सहित कई प्रोग्रामिंग भाषाओं में एक आम बात है। यह असाइनमेंट के रूप में अधिक संक्षिप्त कोड के लिए अनुमति देता है और स्थिति की जाँच एक लाइन में की जा सकती है। हालाँकि, यह भ्रम और संभावित बग्स को भी जन्म दे सकता है यदि सावधानी से उपयोग नहीं किया जाता है, क्योंकि असाइनमेंट ऑपरेशन एक तुलना ऑपरेशन के लिए गलत हो सकता है। सशर्त अभिव्यक्तियों में असाइनमेंट करने के लिए इसे क्यों बुरा अभ्यास माना जाता है? ऐसा इसलिए है क्योंकि असाइनमेंट ऑपरेटर (=) को समानता ऑपरेटर (==) के लिए आसानी से गलत किया जा सकता है। नतीजतन, एक ऐसी स्थिति जो तुलना के लिए थी, अनजाने में एक असाइनमेंट बन सकती है, जिससे कोड में अप्रत्याशित व्यवहार हो सकता है। इसके अतिरिक्त, शर्तों में असाइनमेंट कोड को पढ़ने और समझने के लिए और अधिक कठिन बना सकते हैं, विशेष रूप से कम अनुभवी प्रोग्रामर के लिए।
शर्तों में असाइनमेंट के कारण होने वाले कुछ सामान्य कीड़े क्या हैं? उदाहरण के लिए, यदि (x = 5) हमेशा सच होगा क्योंकि यह 5 से x असाइन करता है, बजाय यह जाँचने के कि क्या x 5 के बराबर है। यह कोड में अप्रत्याशित व्यवहार का कारण बन सकता है।
क्या शर्तों में असाइनमेंट के लिए कोई विकल्प हैं? एक सामान्य विकल्प उस मूल्य को धारण करने के लिए एक अस्थायी चर का उपयोग करना है जिसे असाइन और चेक करने की आवश्यकता है। यह कोड को स्पष्ट और समझने में आसान बना सकता है। एक अन्य विकल्प एक फ़ंक्शन का उपयोग करना है जो एक मान लौटाता है और फिर स्थिति में उस मान की जांच करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3