Maison >interface Web >js tutoriel >Pourquoi a='abc' n'est pas égal à a=new String('abc')
Cet article explique principalement pourquoi a="abc" n'est pas égal à a=new String("abc"). Les amis qui en ont besoin peuvent s'y référer. J'espère qu'il pourra aider tout le monde.
Évident
a="abc" typeof a //string b=new String("abc") typeof b // object a==b //true a===b //false
Mais pourquoi ? J'ai lu beaucoup de livres et interrogé plusieurs experts, mais en fait, j'étais toujours confus. Enregistrez-le ici pour référence future.
En js, faites la distinction entre le type de données d'origine et le type d'emballage. Les nombres, les chaînes, Boolean, null et undefined sont des types de données primitifs, tandis que Number, String et Boolean sont des types d'empaquetage. Ce qui est créé via le nouveau Number est un objet dérivé du type d'empaquetage. Les deux ne sont donc pas égaux.
Le processus d'utilisation après affectation directe à un type de base est le suivant :
1 Créez une instance de type String
2. valeur spécifiée sur l'instance Méthodes
3. Détruire les instances
Exemple :
var a="123" a.toFixed===Number.prototype.toFixed;
Voici une autre sorte de dicton : boxer, unboxing
La boxe consiste à utiliser cette classe de valeur pour construire un objet d'emballage correspondant
var a=10 ,b="javascript" , c=true; var o_a=new Number(a); var o_b=new String(b); var o_c=new Boolean(c);
Emballage Le rôle principal des boîtes est de traiter les valeurs comme des objets.
Le déballage consiste à convertir l'objet enveloppé en un type valeur
var a=10; var o_a=new Number(a); var b=o_a.valueOf();//这就是拆箱的过程。
Recommandations associées :
ajax Récupère les paramètres de retour de la page php, la méthode d'affectation du contrôle
Comment l'utiliser en php Attribuer une valeur au tableau js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!