एक उदाहरण समारोह यहां डालें:बातिल का उपयोग कर पारित कर दिया मापदंडों के लिए जाँच - जावास्क्रिप्ट
function a(b){
console.log(b != null ? 1 : 2);
}
कि कोड ठीक काम करता है, मुद्रण 1 यदि आप एक पैरामीटर पारित द्वारा, और 2 यदि आप ऐसा नहीं करते।
हालांकि, जेएसलिंट मुझे चेतावनी देता है, मुझे सख्त बराबरता का उपयोग करने के लिए कह रहा है, यानी !==
। चाहे कोई पैरामीटर पास हो या नहीं, भले ही !==
का उपयोग करते समय फ़ंक्शन 1 प्रिंट करेगा।
तो मेरा सवाल यह है कि पैरामीटर पारित किया गया है या नहीं, यह जांचने का सबसे अच्छा तरीका क्या है? मैं arguments.length
का उपयोग नहीं करना चाहता, या वास्तव में arguments
ऑब्जेक्ट का उपयोग कर सकता हूं।
मैं इस उपयोग करने की कोशिश:
function a(b){
console.log(typeof(b) !== "undefined" ? 1 : 2);
}
^कि काम करने के लिए लग रहा था, लेकिन यह सबसे अच्छा तरीका है?
यदि आप 'अपरिभाषित' पास करते हैं तो आपको झूठा नकारात्मक मिलेगा। 'तर्क। लम्बाई' (या वेरिएंट) यह देखने का एकमात्र तरीका है कि तर्क पारित किया गया था या नहीं। – Esailija
@Esailija यदि यह अनिश्चित मूल्य के साथ स्पष्ट रूप से काम करने के लिए फ़ंक्शन का इरादा नहीं है, तो यह ठीक है imo। यह संभवतः प्रत्येक उपयोगकर्ताफॉल्ट को पकड़ने की कार्यवाही की ज़िम्मेदारी नहीं है। – Christoph
@ क्रिस्टोफ यदि आपको वास्तव में यह जानने की आवश्यकता है कि कोई तर्क पारित किया गया है तो यह ठीक नहीं है। यदि आप सिर्फ यह जानना चाहते हैं कि तर्क खाली है या जो भी हो, तो '! = Null' '! == अपरिभाषित' और इसी तरह सभी नाजुक और अच्छे हैं, इसमें कोई बुलेटप्रूफ नहीं है। एक ही समय में 'अपरिभाषित' और 'शून्य' की जांच करने के लिए '! = Null' पसंद करें। – Esailija