web-dev-qa-db-fra.com

Comment "instanceof" une chaîne primitive (chaîne littérale) en JavaScript

En JavaScript, je peux déclarer une chaîne des manières suivantes;

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

mais a n'est pas une instance de String ...

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

Alors, comment trouvez-vous le type ou "instanceof" un littéral de chaîne?

JavaScript peut-il être forcé de créer une new String() pour chaque littéral de chaîne?

29
series0ne

utilisation typeof "foo" === "string" au lieu de instanceof.

60
Artur Udod

Utilisez typeof à la place et comparez simplement la chaîne résultante. Voir docs pour plus de détails.

5
isaach1000

Il n'est pas nécessaire d'écrire new String() pour créer une nouvelle chaîne. Lorsque nous écrivons l'instruction var x = 'test';, Elle crée le x sous forme de chaîne à partir d'un type de données primitif. Nous ne pouvons pas attacher les propriétés personnalisées à ce x comme nous le faisons avec le littéral objet. c'est à dire. x.custom = 'abc';x.custom Donnera une valeur indéfinie. Ainsi, selon notre besoin, nous devons créer l'objet. new String() créera un objet avec typeof() Object et non une chaîne. Nous pouvons ajouter des propriétés personnalisées à cet objet.

2
Vishnudas Tekale