क्या यह जांचने के लिए वैसे भी है कि सख्त मोड 'सख्त उपयोग' लागू किया गया है या नहीं, और हम सख्त मोड और गैर-सख्त मोड के लिए अन्य कोड के लिए अलग-अलग कोड निष्पादित करना चाहते हैं। जब आप सख्त मोड में हैं जैसे isStrictMode();//boolean
क्या सख्त मोड लागू किया गया है या नहीं, यह जांचने का कोई तरीका है?
उत्तर
तथ्य यह है कि this
एक समारोह वैश्विक संदर्भ में कहा जाता है वैश्विक वस्तु को इंगित नहीं होगा अंदर कठोर मोड पता लगाने के लिए इस्तेमाल किया जा सकता:
var isStrict = (function() { return !this; })();
डेमो:
> echo '"use strict"; var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
true
> echo 'var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
false
हाँ, this
समारोह के लिए खोज रहे हैं एक वैश्विक विधि के भीतर 'undefined'
है।
function isStrictMode() {
return (typeof this == 'undefined');
}
function isStrictMode() {
try{var o={p:1,p:2};}catch(E){return true;}
return false;
}
ऐसा लगता है कि आपको पहले से ही एक उत्तर मिला है। लेकिन मैंने पहले ही कुछ कोड लिखा है। तो यहाँ
यह मेहदी के जवाब से बेहतर है क्योंकि यह न केवल वैश्विक दायरे में बल्कि हर जगह काम करेगा। बढ़ा। :) – mgol
इसका परिणाम सिंटैक्स त्रुटि में होता है, जो कोड चलाने से पहले होता है, इसलिए इसे पकड़ा नहीं जा सकता है ... – skerit
यह ES6 में काम नहीं करेगा, क्योंकि गणना की गई संपत्ति नामों को अनुमति देने के लिए चेक हटा दिया गया है। –
मैं कुछ है कि अपवाद का उपयोग नहीं करता है और काम करता है किसी भी सन्दर्भ में पसंद करते हैं, केवल वैश्विक एक नहीं:
var mode = (eval("var __temp = null"), (typeof __temp === "undefined")) ?
"strict":
"non-strict";
यह कठोर मोड में तथ्य eval
में एक नया वेरिएबल परिचय नहीं है का उपयोग करता है बाहरी संदर्भ।
जिज्ञासा से बाहर, 2015 में बुलेटप्रूफ यह कैसे है, अब ईएस 6 यहां है? –
मैं सत्यापित करता हूं कि यह नवीनतम क्रोम और नोडजेस पर ES6 में काम करता है। –
सुरुचिपूर्ण और काम कर रहा है, धन्यवाद! – rudyryk
अधिक सुरुचिपूर्ण तरीका: यदि "इस" वस्तु है, यह सच
"use strict"
var strict = (function() { return !!!this })()
if (strict) {
console.log ("strict mode enabled, strict is " + strict)
} else {
console.log ("strict mode not defined, strict is " + strict)
}
- 1. क्या कोई स्केलर स्ट्रिंग किया गया है या नहीं, यह जांचने का कोई तरीका है?
- 2. वेग: यह जांचने का कोई तरीका है कि चर परिभाषित किया गया है या नहीं
- 3. क्या यह जांचने का कोई तरीका है कि बाइनरी मोड में एक आईट्रीम खोला गया था या नहीं?
- 4. यह जांचने का सही तरीका है कि कोई फ़ॉर्म पहले से दिखाया गया है या नहीं?
- 5. क्या यह जांचने का कोई तरीका है कि जावा में एक चर परिभाषित किया गया है या नहीं?
- 6. क्या कोई कॉलम शून्य है या नहीं, यह जांचने का कोई त्वरित तरीका है?
- 7. क्या यह जांचने का कोई तरीका है कि कोई चर जावास्क्रिप्ट में दिनांक है या नहीं?
- 8. क्या टेदरिंग सक्रिय है या नहीं यह जांचने का कोई तरीका है?
- 9. क्या यह जांचने का कोई तरीका है कि अलार्म पहले से सेट है या नहीं?
- 10. क्या कोई बाहरी वेब पेज मौजूद है या नहीं, यह जांचने का एक तेज़ तरीका है?
- 11. यह जांचने का सबसे अच्छा तरीका क्या है कि कोई S3 ऑब्जेक्ट मौजूद है या नहीं?
- 12. क्या यह जांचने का कोई तरीका है कि पॉइंटर खतरे में है या नहीं?
- 13. क्या jqGrid के पास डेटा है या नहीं, यह जांचने का कोई तरीका है?
- 14. स्ट्रिंग में कोई छवि टैग है या नहीं, यह जांचने का सबसे आसान तरीका क्या है?
- 15. जेएस यह जांचने का कोई तरीका है कि कोई ईवेंट मौजूद है या नहीं?
- 16. नोड में सख्त मोड को मजबूर करने का कोई तरीका?
- 17. यह जांचने का सबसे अच्छा तरीका है कि कोई सूची शून्य नहीं है या नहीं?
- 18. क्या कोई GWT प्रोग्राम यह बताने का कोई तरीका है कि यह होस्टेड या वेब मोड में है या नहीं?
- 19. क्या यह जांचने का कोई तरीका है कि उपयोगकर्ता ने वास्तव में आपका ऐप रेट किया है या नहीं?
- 20. अमेज़ॅन SimpleEmail: यह जांचने के लिए कि कोई ईमेल डिलीवर किया गया है या नहीं?
- 21. क्या यह जांचने का कोई तरीका है कि निर्देशिका में इंगित प्रतीकात्मक लिंक हैं या नहीं?
- 22. यह जांचने का सबसे पायथन तरीका है कि किसी शब्दकोष में कोई मान परिभाषित किया गया है या शून्य लंबाई
- 23. क्या यह जांचने का कोई तरीका है कि उपयोगकर्ता ने ऐप स्टोर पर अपना ऐप रेट किया है या नहीं?
- 24. क्या यह जांचने का कोई तरीका है कि जावा में दो ऑब्जेक्ट्स अलियाकृत हैं या नहीं?
- 25. एमएसवीसी - यह जांचने का कोई तरीका है कि फ़ंक्शन वास्तव में रेखांकित है या नहीं?
- 26. पर्ल में एक स्ट्रिंग खाली है या नहीं, यह जांचने का सही तरीका क्या है?
- 27. यह जांचने का कोई तरीका है कि XmlSchemaParticle एक खाली पट्टी है या नहीं?
- 28. यह निर्धारित करने का कोई तरीका है कि कोई तत्व लपेटा गया है या नहीं?
- 29. क्या यह जांचने का कोई तरीका है कि एंड्रॉइड डिवाइस ओपनजीएल ईएस 2.0 का समर्थन करता है या नहीं?
- 30. पायथन: वैकल्पिक फ़ंक्शन पैरामीटर सेट किया गया है या नहीं, यह जांचने के लिए कि
ग्रेट में बदलने का। यह सुरुचिपूर्ण है और हर जगह काम करता है। –
स्पष्टीकरण के लिए, रिटर्न स्टेटमेंट 'इस === अपरिभाषित' को वापस करने के बराबर है, यह वैश्विक ऑब्जेक्ट की तुलना नहीं कर रहा है, यह सिर्फ यह जांच रहा है कि यह 'मौजूद है या नहीं। – aljgom