2013-03-05 8 views
10

मैं kriskowal/q में इस स्निपेट में आए:शून्य कीवर्ड का उपयोग क्यों करें?

/** 
* Applies the promised function in a future turn. 
* @param object promise or immediate reference for target function 
* @param args  array of application arguments 
*/ 
Q.fapply = fapply; 
function fapply(value, args) { 
    return dispatch(value, "apply", [void 0, args]); 
} 

void कीवर्ड का उपयोग की बात क्या है? क्यों न केवल [undefined, args] लिखें?

+8

में से एक हो सकता है क्योंकि वैश्विक 'अपरिभाषित' को फिर से परिभाषित किया जा सकता है; यह एक आरक्षित शब्द नहीं है, जैसे 'शून्य'। – raina77ow

+0

.. को फिर से परिभाषित किया जा सकता है, लेकिन जावास्क्रिप्ट 1.8.5 में शुरू होता है, ईसीएमएस्क्रिप्ट 5 विनिर्देश के अनुसार अपरिभाषित गैर-लिखने योग्य है। – epascarello

+5

'शून्य 0'' अपरिभाषित 'से 3 कम वर्ण हैं। –

उत्तर

9

MDN Docs of void

सिंटेक्स

void expression 

से उपयोग करता है

इस ऑपरेटर भाव है कि स्थानों में साइड इफेक्ट उत्पादन जहां एक अभिव्यक्ति है कि अपरिभाषित का आकलन करती है डालने की अनुमति देता है वांछित।

शून्य ऑपरेटर अक्सर केवल अपरिभाषित आदिम मूल्य प्राप्त करने के लिए, आम तौर पर प्रयोग किया जाता है का उपयोग कर "शून्य (0)" (जो करने के लिए "शून्य 0" बराबर है)। इन मामलों में, ग्लोबल वैरिएबल अपरिभाषित (माना जाता है कि इसे गैर-डिफ़ॉल्ट मान को असाइन नहीं किया गया है) के बजाय उपयोग किया जा सकता है।

और क्यों? जावास्क्रिप्ट 1.8.5 में शुरू होने वाले MDN Undefined

जावास्क्रिप्ट undefined के पुराने संस्करणों में अधिरोहित जा सकता है, लेकिन में देखें, अपरिभाषित प्रति ECMAScript 5 विनिर्देश के रूप में गैर-लिखने योग्य है।

+2

ठीक है, तो यह 'अपरिभाषित' लिखने का एक सुरक्षित तरीका है? –

+0

हाँ, यही कारण है। – epascarello

+0

@Rosarch: स्पष्ट होने के लिए, वैश्विक 'अपरिभाषित' गैर-लिखने योग्य है। आप इसे स्थानीय वैरिएबल स्कोप में अभी भी छाया कर सकते हैं। लेकिन सुनिश्चित करें कि आप किसी भी कोड को 'अपरिभाषित' को फिर से परिभाषित करने की अनुमति नहीं देते हैं, और यह उपयोग करने के लिए बहुत सुरक्षित है। –

1

शून्य जावास्क्रिप्ट में एक महत्वपूर्ण कीवर्ड है जिसे एक यूनरी ऑपरेटर के रूप में उपयोग किया जा सकता है जो कि अपने एकल ऑपरेंड से पहले दिखाई देता है, जो कि किसी भी प्रकार का हो सकता है।

यह ऑपरेटर एक मूल्य वापस किए बिना मूल्यांकन करने के लिए एक अभिव्यक्ति निर्दिष्ट करता है। इसका वाक्यविन्यास following

संबंधित मुद्दे