Maison  >  Article  >  interface Web  >  Quels sont les types de données js ? Résumé des types de données en js

Quels sont les types de données js ? Résumé des types de données en js

不言
不言original
2018-08-07 15:27:113557parcourir

Quels sont les types de données en js ? Les types de données de js sont divisés en types de base et types de référence. Parmi eux, il existe cinq types de données de base de js, à savoir : Number, String, Boolean, Undefined et Null, il existe trois types de données de référence de js, à savoir : Objet, Fonction, Tableau ; cet article résumera les types de données de js pour tout le monde.

Tout d'abord, jetons un coup d'œil à l'opérateur typeof :

Étant donné que les variables dans js sont mal typées, il fournit un moyen de détecter le type de données de la variable actuelle. . , qui est le mot-clé typeof.

typeof   123   //Number
typeof   'abc'  //String
typeof    true       //Boolean
typeof    undefined   //Undefined
typeof    null        //Object
typeof    { }           //Object
typeof    [ ]           //Object
typeof    console.log()       //Function

Une fois l'opérateur typeof effectué sur le type nul, le résultat est object La raison est que le type null est traité comme une référence d'objet vide.

1. types de données de base js

1. Type de numéro

Le type de numéro contient. entiers et nombres à virgule flottante (les nombres à virgule flottante doivent contenir un point décimal et au moins un chiffre après le point décimal). Des nombres très grands ou très petits peuvent être écrits en utilisant la notation scientifique (exponentielle).

NaN : type non numérique. Caractéristiques : ① Toute opération impliquant NaN renverra NaN. ② NaN n'est pas égal à lui-même. La fonction

isNaN() est utilisée pour vérifier si son argument est une valeur non numérique.

isNaN(123) //false isNaN("hello") //true

2. Le type de chaîne

a un attribut de longueur.

Conversion de chaîne : fonction de transformation String(), adaptée à tout type de données (nulle, non définie sera nulle et non définie après la conversion) ; méthode toString() (nulle, définie n'a pas de méthode toString()).

3. Type booléen

Ce type n'a que deux valeurs, vrai et faux

Type non défini

Il n'y a qu'une seule valeur, la valeur indéfinie. Si une variable est déclarée à l'aide de var, mais que la variable n'est pas initialisée, la valeur de la variable n'est pas définie.

5. Type Null

Le type Null est considéré comme un pointeur d'objet nul. Comme mentionné ci-dessus, le type nul est également une référence d'objet nul.

6. Type d'objet

L'objet en js est une collection de propriétés et de méthodes. Nous parlons ici de types de référence. Les types de référence sont une structure de données utilisée pour organiser les données et les fonctions ensemble. Les types référence sont parfois appelés définitions d'objet car ils décrivent les propriétés et les méthodes d'une classe d'objets.

2. Types de données de référence js

1. Type d'objet

La plupart des valeurs de type que nous voyons sont. Instances de type Objet. Il existe deux manières de créer des instances d'objet.

La première façon consiste à utiliser l'opérateur new suivi du constructeur Object, comme indiqué ci-dessous

var person = new Object();
person.name = "Micheal";
person.age = 24;
La deuxième façon consiste à utiliser la notation littérale d'objet, comme indiqué ci-dessous

var person = {
  name : "Micheal",
  age : 24
};

2. Type de tableau

Chaque élément du tableau peut être utilisé pour sauvegarder tout type de données, c'est-à-dire la première position du tableau. un tableau peut être utilisé Pour enregistrer la chaîne, la deuxième position stocke la valeur et la troisième position stocke l'objet.... De plus, la taille du tableau peut être ajustée dynamiquement.

Il existe deux manières de base de créer un tableau

La première consiste à utiliser le constructeur Array, comme indiqué ci-dessous

var colors = new Array("red","blue","yellow");
La seconde consiste à utiliser la représentation littérale du tableau méthode, comme indiqué ci-dessous

var colors = ["red","blue","yellow"];

3. Type de fonction

Chaque fonction est une instance du type Fonction et possède les mêmes attributs et attributs que les autres références. méthode. Les fonctions sont généralement définies à l'aide de la syntaxe de déclaration de fonction, comme indiqué ci-dessous

function sum(num1,num2){
  return num1 + num2;
};
Cela est similaire à la façon dont les fonctions sont définies à l'aide d'expressions de fonction.

var sun = function (){
  return sum1 + sum2;
};
En d'autres termes, js est divisé en types valeur et types référence selon les méthodes de stockage. Alors, quelle est la différence entre leurs calculs ?

3. La différence entre les types de valeur et les types de référence

1. occuper L'espace est fixe et stocké dans la pile (lorsqu'une méthode est exécutée, chaque méthode établira sa propre pile mémoire, et les variables définies dans cette méthode seront mises une par une dans cette pile mémoire. Au fur et à mesure de l'exécution de la méthode À la fin, la pile mémoire de la méthode sera également naturellement détruite. Par conséquent, toutes les variables définies dans la méthode sont placées dans la mémoire de la pile ; la pile stocke les variables de base et les variables de référence de certains objets, ainsi que les valeurs de base. les variables sont stockées dans la pile. , et la variable de référence stockée dans la pile pointe vers l'adresse du tableau ou de l'objet dans le tas, c'est pourquoi la modification du type de référence affecte toujours les autres variables de référence pointant vers cette adresse) Ce qui est enregistré et copié est la valeur elle-même

Utilisez typeof pour détecter le type de données

Les données de type de base sont un type de valeur

Référence. tapez

占用空间不固定,保存在堆中(当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。)

保存与复制的是指向对象的一个指针

使用instanceof检测数据类型

使用new()方法构造出的对象是引用型

计算区别:

题目1:

var a = 100;
    var b = a;
      a = 200;
    console.log (b);

题目2:

var a = {age : 20};
    var b = a;
    b.age = 21;
    console.log (a.age);

题目1的答案是 100,题目2的答案是21,

题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。

此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。

题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。

这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。

因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。

相关文章推荐:

js的数据类型及JS基本数据类型具体有哪几种

JS数据类型怎样转换

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!

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