यह पता लगाने का सबसे अच्छा तरीका क्या है कि कोई चर स्ट्रिंग है या नहीं (और, वैसे ही, एक संख्या, एक बूलियन इत्यादि)?एक चर के प्रकार की जांच
आमतौर पर आप पाएँगे:
function isString(value) {
return typeof value === 'string';
}
लेकिन लोग भूल जाते हैं कि एक भी सीधे var foo = new String("bar");
का उपयोग कर वस्तुओं स्ट्रिंग बना सकते हैं - कि एक अच्छा विचार है या नहीं एक बिल्कुल अलग बात है या नहीं।
तो यहां जाने का तरीका क्या है? मैं के बारे में सोच सकते हैं - और देखा है - विभिन्न दृष्टिकोण (कुछ सरलीकृत):
// option 1
function isString(value) {
return (typeof value === 'string') ||
/^function String\(\)/.test(value.constructor + '');
}
या
// option 2
function isString(value) {
return (typeof value === 'string') ||
(value.constructor === String);
}
या
// option 3
function isString(value) {
return (typeof value === 'string') ||
value instanceof String;
}
वहाँ एक "सर्वश्रेष्ठ" जिस तरह से इस बारे में जाने के लिए है ? या वे सभी समकक्ष हैं?
नीट, मुझे नहीं पता था (कम से कम मैंने कभी इसके बारे में सोचा नहीं;) वास्तव में सवाल का जवाब नहीं देता है, हालांकि। – n3rd
@ n3rd: यह तीन मौजूदा विकल्पों में से एक नहीं होने के अलावा अन्य प्रश्न का उत्तर कैसे नहीं देता है? – BoltClock
+1। बस इसे पोस्ट करने वाला था। क्या यह स्ट्रिंग के पकड़ (गैसपी) उप-वर्गों को यद्यपि करता है? – Skurmedel