जावास्क्रिप्ट typeof
एक ऑपरेटर और फ़ंक्शन है। क्या यह बेहतर ऑपरेटर या फ़ंक्शन के रूप में उपयोग किया जाता है? क्यूं कर?टाइपोफ़ एक ऑपरेटर है और एक फ़ंक्शन
उत्तर
typeof
एक ऑपरेटर है। आप आसानी से उपयोग कर इसे देख सकते हैं:
typeof(typeof)
थे typeof
एक समारोह, इस अभिव्यक्ति 'function'
स्ट्रिंग वापसी होगी, लेकिन यह एक सिंटैक्स त्रुटि में परिणाम है:
js> typeof(typeof);
typein:8: SyntaxError: syntax error:
typein:8: typeof(typeof);
typein:8: .............^
हां, तो typeof
एक समारोह नहीं हो सकता। शायद संकेतन का कोष्ठक typeof(foo)
बनाया आपको लगता है typeof
एक समारोह है, लेकिन वाक्य रचना, उन कोष्ठक नहीं समारोह कॉल - वे, समूह के लिए इस्तेमाल किए जाने वाले बस (2 + 3) *2
की तरह हैं। वास्तव में, आप उनमें से किसी भी संख्या को जोड़ सकते हैं:
typeof(((((foo))))); // is equal to typeof foo;
नोट यह अन्य ऑपरेटरों के लिए सच है - '[] उदाहरण (ऑब्जेक्ट)'। –
मुझे लगता है कि आप चुनते हैं, जिन आप स्पष्टता के आधार पर चाहते हैं, एक आदत के रूप में मैं आमतौर पर निम्नलिखित तरीके से एक ऑपरेटर के रूप में उपयोग, क्योंकि यह बहुत स्पष्ट है, कम से कम IMO:
if(typeof thing === "string") {
alert("this is a string");
}
if(typeof thing === "function") {
alert("this is a function");
}
यह इस का विरोध किया है प्रारूप:
if(typeof(thing) === "string") {
alert("this is a string");
}
मेरे लिए कौन-, बनाता है पढ़ने के लिए यह थोड़ा धीमा। यदि आप typeof(thing)
करते हैं तो यह वही बात है, जो भी आपकी नाव तैरती है। You can get a full read and what strings to expect from types here।
तो कोई बेहतर तरीका नहीं समझा है? क्या जावास्क्रिप्ट शैली मार्गदर्शिका मौजूद है? – hekevintran
@hekevintran - सभी के लिए एक विशिष्ट मानक मार्गदर्शिका नहीं है, आप परिपक्व होकर एक बड़ा ढांचा ढूंढ सकते हैं और शायद इसकी स्टाइल का पालन कर सकते हैं, jQuery या प्रोटोटाइप जैसे कुछ ... लेकिन फिर ये टीम की शैलियों हैं, इसलिए यह जरूरी नहीं है कि यह आवश्यक है "मानक"। –
खूनी नरक, मैं संस "()" एस को निर्दिष्ट करने में सक्षम होने से अनजान था। –
- 1. सी ++ टाइपोफ़ ऑपरेटर
- 2. "नया" ऑपरेटर और "नया" फ़ंक्शन
- 3. "&" ऑपरेटर एक PHP फ़ंक्शन में कैसे काम करता है?
- 4. एक ऑपरेटर
- 5. "ऑपरेटर int" फ़ंक्शन क्या है?
- 6. एक ही ऑपरेटर
- 7. क्या यह एक सामान्य ऑपरेटर == और ऑपरेटर <को लागू करने का एक सुरक्षित तरीका है?
- 8. एक ऑपरेटर को एक चर
- 9. पैकेज के भीतर एक बाइनरी ऑपरेटर फ़ंक्शन बनाना
- 10. ओवरलोडिंग ऑपरेटर एक आधार वर्ग
- 11. मैथजेक्स में एक नया फ़ंक्शन ('ऑपरेटर') कैसे परिभाषित करें?
- 12. ऑपरेटर पूर्वता और एक पार्सर (हास्केल)
- 13. फ़ंक्शन एप्लिकेशन ऑपरेटर ($)?
- 14. ओवरलोडिंग ऑपरेटर [] एक विरल वेक्टर
- 15. क्या सी # में एक एक्सपोनेंट ऑपरेटर है?
- 16. क्या हैस्केल $ ऑपरेटर का एक उलटा है?
- 17. रूबी, !! ऑपरेटर (एक/k/एक डबल धमाका)
- 18. मानचित्र में + में + = एक उपसर्ग ऑपरेटर = है?
- 19. क्या हैंडलबर्स.जेएस में एक टर्नरी ऑपरेटर है?
- 20. getContext एक फ़ंक्शन नहीं है
- 21. मैं एक फ़ंक्शन कैसे लिखूं जो एक और फ़ंक्शन देता है?
- 22. document.getElementByID एक फ़ंक्शन नहीं है
- 23. ऑपरेटर के साथ फ़ंक्शन टेम्पलेट
- 24. getResponseHeader एक फ़ंक्शन नहीं है
- 25. क्यों नहीं है -> [] सी ++ में एक ऑपरेटर? (dereferenced सरणी पॉइंटर्स के लिए एक सबस्क्रिप्ट ऑपरेटर)
- 26. ओकैम: एक तुलना ऑपरेटर का उपयोग एक समारोह में पारित
- 27. ऑपरेटर अधिभार एक स्टैक ओवरफ़्लो
- 28. ऑपरेटर शून्य * और ऑपरेटर बूल
- 29. सी ++ ऑपरेटर + और ऑपरेटर + = अधिभार
- 30. एक SharePoint सूची पढ़ें और जावास्क्रिप्ट फ़ंक्शन
थोड़ा सा विषय: असल में, यह दुर्लभ है कि मैं इन दिनों 'टाइपोफ' का उपयोग करता हूं। AFAIK, 'typeof' प्रत्यक्ष जांच से धीमा है, क्योंकि इसे स्ट्रिंग को वापस करने के लिए कई अलग-अलग प्रकार की जांच करने की आवश्यकता है। इसलिए, मैं हमेशा इसके बजाय कन्स्ट्रक्टर (यदि संभव हो) की जांच करता हूं, जैसे, 'अगर (("हैलो")। कन्स्ट्रक्टर == स्ट्रिंग) {...} ' –
@ सुने रasmुसेन - सीमित प्रोफाइलिंग से मैंने अभी किया है, फ़ायरफ़ॉक्स 3.6 में कन्स्ट्रक्टर चेक 'टाइपोफ' के रूप में धीमा है। मेरे पास एक 'var func = function() {}; था और फिर मैंने' टाइपफ func! = "फ़ंक्शन" 'चेक' के साथ-साथ 'func.constructor! = फ़ंक्शन' चेक दोनों किया था। पूर्व दो गुना तेज था। – JulianR
यदि आप jQuery का उपयोग करते हैं तो 'टाइपोफ़' का निष्पादन समय नगण्य है। –