2013-05-28 16 views
21

In JavaScript, posso dichiarare di una stringa nei seguenti modi;Come "instanceof" una stringa primitivo (stringa letterale) in JavaScript

var a = "Hello World"; 
var b = new String("Hello World"); 

ma non è un esempio di stringa ...

console.log(a instanceof String); //false; 
console.log(b instanceof String); //true; 

Così come si fa a trovare il tipo o la "instanceof" una stringa letterale?

Può JavaScript essere costretti a creare un new String() per ogni stringa letterale?

risposta

46

uso typeof "foo" === "string" invece di instanceof.

5

Usa typeof invece e basta confrontare la stringa risultante. Vedi docs per i dettagli.

+1

Non è un metodo! – Bergi

+0

Grazie per il collegamento doc; ma [instanceof] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof) è altrettanto pertinente: "L'operatore instanceof verifica la presenza di constructor.prototype nella catena di prototipi dell'oggetto ". – jpaugh

2

Non v'è alcuna necessità di scrivere new String() per creare una nuova stringa. Quando scriviamo var x = 'test'; dichiarazione, creare la x come una stringa da un tipo di dati primitivi. Non possiamo allegare le proprietà personalizzate a questo x come facciamo con l'oggetto letterale. vale a dire. x.custom = 'abc';x.custom darà valore indefinito. Quindi, secondo i nostri bisogni, dobbiamo creare l'oggetto. new String() creerà un oggetto con typeof() oggetto e non stringa. Possiamo aggiungere proprietà personalizzate a questo oggetto.

Problemi correlati