JavaScript のデータ型とは何ですか?また、それらはどのように異なるのでしょうか?

JavaScript には 8 つのデータ型があります。つまり、Unknown、Null、Boolean、Number、String、Object、Symbol、BigInt です。

その中で、Symbol と BigInt は ES6 の新しいデータ型です。

  • シンボルは、作成後に発生する可能性のあるグローバル変数の競合の問題を解決するために、作成後に一意で不変のデータ型を表します。
  • BigInt は、任意精度の形式で整数を表すことができるデジタル データ型です。BigInt を使用すると、数値が上限を超える場合でも、大きな整数を安全に保存および操作できます。
  • Number が表現できる安全な整数の範囲。

これらのデータは、プリミティブ データ型と参照データ型に分類できます。

  • スタック: プリミティブ データ型 (未定義、Null、ブール、数値、文字列)
  • ヒープ: 参照データ型 (オブジェクト、配列、関数)

2 つのタイプの違いは、保存場所の違いです。

  • プリミティブ データ型は、スタック (スタック) に直接格納される単純なデータ セグメントであり、占有スペースが小さく、サイズが固定されており、頻繁に使用されるデータに属するため、スタックに格納されます。
  • ヒープに格納される参照データ型のオブジェクトは大きな領域を占有し、サイズは固定されていません。スタックに格納されると、実行中のプログラムのパフォーマンスに影響します。参照データ型は、ヒープ内のエンティティの開始アドレスを指すポインターをスタックに格納します。インタプリタが参照値を探すとき、まずスタック上のアドレスを取得し、アドレスを取得した後、ヒープからエンティティを取得します。

ヒープとスタックの概念は、データ構造とオペレーティング システムのメモリ、つまりデータ構造に存在します。

  • データ構造上、スタック内のデータへのアクセス方法は先入れ後出しとなります。
  • ヒープは優先度に従ってソートされた優先キューであり、サイズに応じて優先度を指定できます。

オペレーティング システムでは、メモリはスタック領域とヒープ領域に分割されます。

  • スタック領域のメモリはコンパイラによって自動的に確保・解放され、関数のパラメータ値やローカル変数の値などが格納されます。データ構造内のスタックのように動作します。
  • ヒープメモリの割り当てと解放は開発者が行うのが一般的ですが、開発者が解放しない場合はプログラム終了時にガベージコレクション機構によって回収される可能性があります。

おすすめ

転載: blog.csdn.net/weixin_45753871/article/details/127322835