ホームページ  >  記事  >  ウェブフロントエンド  >  jsのデータ型とは何ですか? jsのデータ型のまとめ

jsのデータ型とは何ですか? jsのデータ型のまとめ

不言
不言オリジナル
2018-08-07 15:27:113519ブラウズ

jsのデータ型とは何ですか? js のデータ型は基本型と参照型に分けられ、js の基本データ型は Number、String、Boolean、Unknown、Null の 3 つです。オブジェクト、関数、配列; この記事では、js のデータ型をすべての人に向けてまとめます。

まず、typeof 演算子を見てみましょう:

js の変数は緩やかに型指定されているため、現在の変数のデータ型 (typeof キーワード) を検出する方法が提供されます。

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

null 型typeof 演算子を実行すると、null 型は null オブジェクト参照として扱われるため、結果は object になります。

1. js の基本データ型

1. 数値型

数値型には、整数と浮動小数点数の 2 つの値が含まれます (浮動小数点数の値には小数点が含まれている必要があり、小数点以下少なくとも 1 桁)。非常に大きい数値または非常に小さい数値は、科学 (指数) 表記を使用して記述することができます。

NaN: 非数値型。特徴: ① NaN を含むすべての演算は NaN を返します。 ② NaN はそれ自体と等しくありません。

isNaN() 関数は、引数が数値以外の値であるかどうかを確認するために使用されます。

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

2.文字列型

文字列は長さ属性を持ちます。

文字列変換: 変換関数 String()、任意のデータ型に適用可能 (null、未定義は null および未定義に変換されます); toString() メソッド (null、定義済みには toString() メソッドはありません)。

3. ブール型

この型には、true と false の 2 つの値のみがあります

4. 未定義型

は、値が 1 つだけあります。変数が var を使用して宣言されているが、変数が初期化されていない場合、変数の値は未定義です。

5. Null 型

Null 型は、Null オブジェクト ポインタと見なされます。前述したように、Null 型は空のオブジェクト参照でもあります。

6. オブジェクトの型

js のオブジェクトは、プロパティとメソッドのコレクションです。ここでは参照型について説明します。参照型は、データと関数を一緒に編成するために使用されるデータ構造です。参照型は、オブジェクトのクラスのプロパティとメソッドを記述するため、オブジェクト定義と呼ばれることもあります。

2. js 参照データ型

1. オブジェクト型

私たちが目にする型値のほとんどは、オブジェクト型のインスタンスを作成する方法があります。

最初の方法は、以下に示すように、 new 演算子の後にオブジェクト コンストラクターを使用することです

var person = new Object();
person.name = "Micheal";
person.age = 24;

2 番目の方法は、以下に示すように、オブジェクト リテラル表記を使用することです

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

2 配列型

2. item はあらゆる種類のデータの保存に使用できます。つまり、配列の最初の位置は文字列の保存に、2 番目の位置は値の保存に、3 番目の位置はオブジェクトの保存に使用できます。さらに、配列のサイズは動的に調整できます。

配列を作成するには 2 つの基本的な方法があります

1 つ目は、以下に示すように Array コンストラクターを使用する方法です

var colors = new Array("red","blue","yellow");

2 つ目は、以下に示すように配列リテラル表記を使用する方法です

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

3。 すべての関数は Function 型のインスタンスであり、他の参照型と同じプロパティとメソッドを持ちます。関数は通常、以下に示すように、関数宣言構文を使用して定義されます

function sum(num1,num2){
  return num1 + num2;
};

これは、関数式を使用して関数を定義する方法と似ています。

var sun = function (){
  return sum1 + sum2;
};

つまり、jsは格納方法によって値型と参照型に分かれます。それでは、両者の計算の違いは何でしょうか?

3. 値型と参照型の違い

1. 値型

は固定領域を占有し、スタックに格納されます (メソッドが実行されると、各メソッドは独自のメモリを作成します)スタック、このメソッドで定義された変数は 1 つずつこのスタック メモリに配置されます。メソッドの実行が終了すると、このメソッドのメモリ スタックは自然に破棄されます。そのため、メソッドで定義されたすべての変数はスタック メモリに配置されます。スタックには、いくつかのオブジェクトの基本変数と参照変数が格納され、スタックに格納された参照変数は、ヒープ内の配列またはオブジェクトのアドレスを指します。参照が変更されるのはそのためです。型は常にこのアドレスを指す他の参照変数に影響します。)

保存およびコピーされるのは値そのものです

データの型を検出するには typeof を使用します

基本的な型データは値です。型

2. 参照型

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

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

使用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的数据类型+引用类型深浅拷贝与内存分配问题


以上がjsのデータ型とは何ですか? jsのデータ型のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。