Maison  >  Article  >  interface Web  >  Méthode d'implémentation de conversion d'objets en valeurs primitives (tutoriel graphique)

Méthode d'implémentation de conversion d'objets en valeurs primitives (tutoriel graphique)

亚连
亚连original
2018-05-21 11:07:001288parcourir

Maintenant, je vais vous présenter une méthode d'implémentation pour convertir des objets en valeurs primitives. Permettez-moi de le partager avec vous maintenant et de le donner comme référence pour tout le monde.

Tout d'abord, nous devons comprendre le concept de valeur primitive

Valeur primitive

Données simples stockées dans le segments de pile, c'est-à-dire que leurs valeurs sont stockées directement à l'emplacement où l'on accède à la variable.

Valeur de référence

Un objet stocké dans le tas, c'est-à-dire la valeur stockée dans une variable est un pointeur (point), pointant à l'emplacement mémoire où l'objet est stocké

————Fait référence au concept du w3c

valeur originale, une compréhension simple est null numéro de chaîne non défini Booléen Ces

La conversion d'objets en booléen est relativement simple

Tous les objets (y compris les tableaux et les fonctions) sont convertis en vrai, et les objets wrapper sont également des objets et sont également convertis en vrai

Livre Voici ce qu'il dit : "Les objets temporaires créés lors de l'accès aux propriétés des chaînes, des nombres et des valeurs booléennes sont appelés objets d'empaquetage." C'est ainsi que je comprends que les chaînes, les nombres et les booléens générés par new sont tous pris en compte. objets d'emballage. , il est différent d'un objet, mais c'est bien un objet. La principale différence est que de nouveaux attributs ne peuvent pas être définis pour l'objet d'emballage, car les attributs du numéro de chaîne booléen sont en lecture seule.

Convertir l'objet en type chaîne

Si l'objet a une méthode toString(), appelez la méthode toString(). Si une valeur primitive est renvoyée, la primitive. La valeur est Convertir en chaîne, l'objet est converti en cette chaîne, s'il n'a pas de méthode toString() ou si la valeur renvoyée par cette méthode n'est pas une valeur primitive, alors appelez la méthode valueOf(), la même routine, s'il renvoie une valeur primitive, la valeur d'origine est convertie en chaîne et l'objet est converti en chaîne. Si la valeur renvoyée n'est pas une valeur primitive, une erreur de conversion de type est générée.

La méthode toString() et la méthode valueOf() ici ne seront pas décrites une par une

l'objet est converti en comparaison de type numérique

. conversion En chaîne, le processus de conversion du nombre est exactement le contraire. Appelez d'abord la méthode valueOf(), puis appelez la méthode toString() Enfin, si la méthode toString() ne renvoie pas une valeur originale, js générera une erreur.

Lors de l'utilisation des opérateurs "==" et "+" pour effectuer des calculs numériques ou une concaténation de chaînes, si un côté de l'opérateur est un objet, une méthode spéciale de conversion de l'objet en valeur primitive sera utilisée . Pour les objets non-date, l'objet est converti en valeur d'origine par

L'objet appelle d'abord la méthode valueOf(), puis appelle la méthode tostring(), et la valeur d'origine obtenue en appelant ces deux méthodes est directement converti en valeur d'origine. Pour les objets date, appelez d'abord la méthode toString(), puis appelez la méthode valueOf.

Pour convertir des objets date en valeurs primitives, prenons un exemple

var now=new Date(); 
typeOf(now+1);     //"string" 将日期对象转换成了字符串,因为先调用的是toString()方法 
typeOf(now-1);      //"number" 体现了js的灵活性,"-"将字符串转换线成了number

Ce qui précède est ce que j'ai compilé pour vous, j'espère qu'il vous sera utile à l'avenir.

Articles connexes :

Explication détaillée des cinq fonctions courantes en JavaScript

Explication détaillée de l'optimisation du code JavaScript

Appel JavaScript et candidature

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn