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?
utilisation typeof "foo" === "string"
au lieu de instanceof.
Utilisez typeof
à la place et comparez simplement la chaîne résultante. Voir docs pour plus de détails.
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.