JavaScript で一般的に使用されるデータ型の概念の紹介

不言
リリース: 2019-03-18 10:51:13
転載
2364 人が閲覧しました

この記事では、JavaScript で一般的に使用されるデータ型の概念を紹介します。これには一定の参考価値があります。必要な友人は参照できます。お役に立てば幸いです。

プログラミング言語にはすべてデータ構造が組み込まれていますが、さまざまなプログラミング言語のデータ構造は異なることがよくあります。この記事では、他のデータ構造の構築に使用できる JavaScript 言語の組み込みデータ構造とそのプロパティをリストし、他の言語との違いを可能な限り説明しようとします。

1. 動的型付け

JavaScript は、弱い型付けまたは動的言語です。つまり、変数の型を事前に宣言する必要はなく、プログラムの実行中に型が自動的に決定されます。これは、同じ変数を使用して異なるタイプのデータを保存できることも意味します。

JS 共通データ型

プログラミング言語には組み込みのデータ構造がありますが、さまざまなデータ構造があります。プログラミング言語には違いがあることがよくあります。この記事では、他のデータ構造の構築に使用できる JavaScript 言語の組み込みデータ構造とそのプロパティをリストし、他の言語との違いを可能な限り説明しようとします。

1. 動的型付け

JavaScript は、弱い型付けまたは動的言語です。つまり、変数の型を事前に宣言する必要はなく、プログラムの実行中に型が自動的に決定されます。これは、同じ変数を使用して異なるタイプのデータを保存できることも意味します。

var foo = 42;    // foo is a Number now
foo = "bar"; // foo is a String now
foo = true;  // foo is a Boolean now
ログイン後にコピー

動的型付け言語の特徴は柔軟性ですが、欠点はパフォーマンスがある程度犠牲になることです。動的型付け言語の場合、変数の型は動的に変更される可能性がありますが、コンパイル時には決定できないため、コンパイル時の型チェックは比較的弱く、実行時まで発見できない多くの型エラーが発生します。

2. データ型

最新の ECMAScript 標準では 7 つのデータ型が定義されています:

6 プリミティブ型:

   Boolean
   Null
   Undefined
   Number
   String
   Symbol (ECMAScript 6 新定义)
ログイン後にコピー
Object

3. プリミティブ値 (プリミティブ値)

Object を除くすべての型は不変です (値自体は変更できません)。たとえば、C 言語とは異なり、JavaScript の文字列は不変です。このような種類の値を「プリミティブ値」と呼びます。

Boolean 型 (Boolean)

Boolean は論理エンティティを表し、true と false の 2 つの値を持つことができます。

Null 型

Null 型には値が 1 つだけあります: null 詳細については、「null と Null」を参照してください。

未定義型

値が割り当てられていない変数には、デフォルト値が未定義になります。詳細については、「未定義」および「未定義」を参照してください。

数値タイプ

ECMAScript 標準によれば、JavaScript には数値タイプが 1 つだけあります: IEEE 754 に基づく倍精度 64 ビット バイナリ形式の値 (-(263 -1) ~ 263 -1)標準。整数の特定の型は提供されません。浮動小数点数を表現できることに加えて、Infinity、-Infinity、NaN (Not-a-Number) などの符号付き値も使用できます。

値が /-Infinity より大きいか小さいかを確認するには、定数 Number.MAX_VALUE および Number.MIN_VALUE を使用できます。さらに、ECMAScript 6 では、Number.isSafeInteger() メソッド、Number.MAX_SAFE_INTEGER および Number.MIN_SAFE_INTEGER を使用して、値が倍精度浮動小数点数の範囲内にあるかどうかを確認することもできます。この範囲を超えると、JavaScript の数値は安全ではなくなります。つまり、JavaScript の数値型で正しく表現できるのは 2 番目の数学的整数のみです。

数値型には整数が 1 つだけあり、その整数には 2 つの表現方法があります。0 は -0 と 0 として表現できます (「0」は 0 の省略形です)。実際には、これもほとんど影響はありません。たとえば、0 === -0 は true です。ただし、0 で割る場合は注意が必要です。

42 / +0; // Infinity
42 / -0; // -Infinity
ログイン後にコピー

String 型

JavaScript の string 型は、テキスト データを表すために使用されます。これは、16 ビットの符号なし整数値のセットの「要素」です。文字列内の各要素は文字列内の位置を占めます。最初の要素のインデックスは 0、次の要素のインデックスは 1、というようになります。文字列の長さはその要素の数です。

C 系言語とは異なり、JavaScript 文字列は不変です。これは、文字列が作成されると変更できないことを意味します。ただし、元の文字列の操作に基づいて新しい文字列を作成することは可能です。例:

個々の文字を選択するか、String.substr() を使用して、文字列の部分文字列を取得します。2 つの文字列を接続するには、連結演算子 ( ) または String.concat() を使用します。

コード内の「文字列型」に注意してください!
文字列を使用して複雑なデータを表現できます。ここにいくつかの優れたプロパティがあります:

複雑な文字列文字の連結と構築が簡単
文字列はデバッグが簡単 (表示される内容は多くの場合文字列内にあります)
文字列は通常、多くの API (入力フィールド、ローカル ストレージ値、XMLHttpRequest) で共通の標準ですは、responseText などを使用するときに応答します)、文字列でのみ使用できます。
慣例により、文字列は通常、あらゆるデータ構造を表現するために使用できます。これは良い考えではありません。たとえば、区切り文字を使用すると、リストを模倣できます (JavaScript 配列の方が適している可能性があります)。残念ながら、リスト内の要素に区切り文字を使用すると、リストが中断されてしまいます。エスケープ文字などこれらすべてのルーチンは、使用する適切なツールがなければ、メンテナンスの負担がまったくなくなります。

テキストデータやシンボリックデータを表現する場合は文字列を使用することを推奨します。複雑なデータを表現する場合は、文字列解析と適切な省略形を使用します。

シンボル タイプ

シンボルは ECMAScript 第 6 版で新たに定義されました。シンボリック型は一意で変更不可能であり、オブジェクトのキー値としても使用できます (以下に示すように)。一部の言語には同様のアトミック型 (アトム) もあります。C の列挙型であると考えることもできます。詳細については、「シンボルとシンボル」を参照してください。

オブジェクト オブジェクト

JavaScript では、オブジェクトはプロパティのコレクションとして見ることができます。オブジェクト リテラル構文を使用してオブジェクトを定義すると、一連のプロパティが自動的に初期化されます。 (言い換えると、var a = "Hello" を定義すると、a 自体がメソッド a.substring、属性 a.length などを持ちます。オブジェクトを定義した場合、var a = {}、次に a a.hasOwnProperty や a.constructor などのプロパティとメソッドが自動的に追加されます。)その後、これらのプロパティを増減できます。プロパティの値は、複雑なデータ構造を持つオブジェクトなど、任意のタイプにすることができます。属性はキーによって識別され、そのキー値は文字列またはシンボル値 (Symbol) になります。

ECMAScript で定義されるオブジェクトには、データ プロパティとアクセサー プロパティの 2 種類のプロパティがあります。

データ属性
データ属性はキーと値のペアであり、各データ属性には次の特性があります。

データ プロパティの属性

O(∩_∩ )O はは~やはり基本はとても大切です。



以上がJavaScript で一般的に使用されるデータ型の概念の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート