Maison > interface Web > js tutoriel > Introduction détaillée aux objets standards JavaScript

Introduction détaillée aux objets standards JavaScript

零下一度
Libérer: 2017-06-28 13:34:19
original
1289 Les gens l'ont consulté

Cet article présente principalement en détail les informations pertinentes sur les objets standard JavaScript, qui ont une certaine valeur de référence. Les amis intéressés peuvent se référer à

Dans le monde de JavaScript Ici, tout est un. objet.

Mais certains objets sont quand même différents des autres. Afin de distinguer le type d'objet, nous utilisons typeofoperator pour obtenir le type d'objet, qui renvoie toujours unestring :


typeof 123; // 'number'
typeof NaN; // 'number'
typeof 'str'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof Math.abs; // 'function'
typeof null; // 'object'
typeof []; // 'object'
typeof {}; // 'object'
Copier après la connexion

On peut voir que nombre, chaîne, booléen, fonction et non défini sont différents de d'autres types. Faites particulièrement attention au fait que le type de null est un objet et que le type de Array est également un objet. Si nous utilisons typeof, nous ne pourrons pas faire la distinction entre null, Array et object au sens habituel - {}.

Objets d'emballage

En plus de ces types, JavaScript fournit également des objets d'emballage. Les amis qui connaissent Java connaîtront certainement int et <. 🎜 >EntierCette relation ambiguë. Le nombre, le booléen et la chaîne ont tous des objets d'emballage. Oui, en JavaScript, les chaînes font également la distinction entre le type chaîne et son type wrapper. Les objets d'emballage sont créés avec de nouveaux :


var n = new Number(123); // 123,生成了新的包装类型
var b = new Boolean(true); // true,生成了新的包装类型
var s = new String(&#39;str&#39;); // &#39;str&#39;,生成了新的包装类型
Copier après la connexion
Bien que les objets d'emballage ressemblent exactement aux valeurs d'origine et soient affichés exactement de la même manière, leur les types ont changé d'objet ! Par conséquent, comparer l'objet enveloppé avec la valeur d'origine en utilisant === renverra false :



typeof new Number(123); // &#39;object&#39;
new Number(123) === 123; // false

typeof new Boolean(true); // &#39;object&#39;
new Boolean(true) === true; // false

typeof new String(&#39;str&#39;); // &#39;object&#39;
new String(&#39;str&#39;) === &#39;str&#39;; // false
Copier après la connexion
N'utilisez donc pas d'objets enveloppés si vous êtes libre ! Surtout pour le type

string ! ! ! Si on utilise
Number, Boolean et String sans écrire new Ce qui se produit? À l'heure actuelle,
Number(), Boolean et String() sont traités comme des fonctions ordinaires pour convertir tout type de data Pour les types numéro, booléen et chaîne (notez son type d'emballage) :


var n = Number(&#39;123&#39;); // 123,相当于parseInt()或parseFloat()
typeof n; // &#39;number&#39;

var b = Boolean(&#39;true&#39;); // true
typeof b; // &#39;boolean&#39;

var b2 = Boolean(&#39;false&#39;); // true! &#39;false&#39;字符串转换结果为true!因为它是非空字符串!
var b3 = Boolean(&#39;&#39;); // false

var s = String(123.45); // &#39;123.45&#39;
typeof s; // &#39;string&#39;
Copier après la connexion
Votre tête vous semble grosse ? C'est le charme hypnotique unique de JavaScript !


Pour résumer, plusieurs règles doivent être respectées :


  • Ne pas utiliser

    nouveau numéro( ), new Boolean(), new String()Créez un objet wrapper ;>parseFloat()

  • pour convertir n'importe quel type en
  • numéro ;  Utilisez String() pour convertir n'importe quel type en string

  • , ou appelez directement
  • toString()< d'un objet 🎜>Méthode Habituellement, il n'est pas nécessaire de convertir un type  ; à booléen avant de juger, car vous pouvez directement

    Écrire if (myVar) {...};
  • typeof opérateur Vous pouvez juger nombre, booléen, chaîne, fonction et non défini

     ; 🎜>
  • Juge ArrayPour utiliser Array.isArray(arr); Veuillez utiliser myVar; === null

  • ;
  •  Pour déterminer si une variable globale existe, utilisez typeof window.

  • En interne, la fonction détermine si une variable existe en utilisant
  • typeof myVar === 'undefined' . Enfin, un étudiant attentif a souligné que tout objet a une méthode

    toString()
  •  ?

    null et

    undefined
  • ne sont pas disponibles ! En effet, ces deux valeurs spéciales doivent être exclues, bien que null soit également déguisé en type

    classe d'objet .

    更细心的同学指出,number对象调用toString()报SyntaxError:


    123.toString(); // SyntaxError
    Copier après la connexion

    遇到这种情况,要特殊处理一下:

    123..toString(); // &#39;123&#39;, 注意是两个点!
    (123).toString(); // &#39;123&#39;
    Copier après la connexion

    不要问为什么,这就是JavaScript代码的乐趣!

    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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal