JavaScriptのデータ型について

前書き

Data typesは、プログラミング言語で1つの特定のタイプのデータを分類するために使用されます。 たとえば、数字と文字列は異なるタイプのデータであり、JavaScriptによって異なる方法で処理されます。

これは重要です。使用する特定のデータ型によって、割り当てられる値と実行できる内容が決まるためです。 つまり、JavaScriptで変数を使用して操作を行うには、特定の変数のデータ型を理解することが重要です。

このチュートリアルでは、JavaScriptでデータ型がどのように機能するか、および言語固有の重要なデータ型について説明します。 これはデータ型の網羅的な調査ではありませんが、JavaScriptで利用可能なオプションに慣れるのに役立ちます。

動的な入力

JavaScriptには動的データ型があります。つまり、型チェックはコンパイル時ではなく実行時に行われます。 Pythonのdata typesも動的に型指定されます。

動的に型付けされた言語では、同じ名前の変数を使用して異なるデータ型を保持できます。

たとえば、letキーワードによって変数として定義された変数tletは特定の変数のスコープを制限することに注意してください)は、さまざまなデータ型を保持するように割り当てることができます。初期化できますが、未定義のままにします。

let t = 16;         // t is a number
let t = "Teresa";   // t is a string
let t = true;       // t is a Boolean
let t;              // t is undefined

上記の各変数tは、JavaScriptで使用可能な任意のデータ型に設定できます。使用する前に、データ型で明示的に宣言する必要はありません。

番号

JavaScriptには数値タイプが1つしかありません。整数と浮動小数点数の個別の指定はありません。 このため、数値は小数の有無にかかわらずJavaScriptで記述できます。

let num1 = 93;
let num2 = 93.00;

上記のどちらの場合でも、データ型は数値であり、数値に小数点があるかどうかに関係なく同じです。

次の例のように、JavaScriptで科学的な指数表記を使用して、非常に大きいまたは小さい数字を短縮できます。

let num3 = 987e8;       // 98700000000
let num4 = 987e-8;      // 0.00000987

JavaScriptの数字は、15桁まで正確であると見なされます。 つまり、16桁目に達した後に数値が丸められます。

let num5 = 999999999999999;     // remains as 999999999999999
let num6 = 9999999999999999;    // rounded up to 10000000000000000

JavaScriptの数値型には、数値の表現に加えて、次の3つの記号値があります。

  • Infinity —無限大に近づくpositive数を表す数値

  • -Infinity-無限大に近づくnegative数を表す数値

  • NaNnotanumberを表す非数値を表す数値

JavaScriptで使用可能な最大数以外の数を計算すると、Infinityまたは-Infinityが返されます。 これらは、ゼロで除算する場合など、未定義の値に対しても発生します。

let num7 = 5 / 0;   // will return Infinity
let num8 = -5 / 0;  // will return -Infinity

技術的には、Infinityは、JavaScriptの上限である1.797693134862315E+308を超えると表示されます。

同様に、数値が-1.797693134862316E+308の下限を超えると、-Infinityが表示されます。

数値Infinityは、ループでも使用できます。

while (num9 != Infinity) {
    // Code here will execute through num9 = Infinity
}

正当な番号ではない番号の場合、NaNが表示されます。 数値と数値以外の値に対して数学演算を実行しようとすると、NaNが返されます。 これは、次の例の場合です。

let x = 20 / "Shark";   // x will be NaN

数値20は数値として評価できないため、文字列"Shark"で除算できないため、x変数の戻り値はNaNです。

ただし、文字列を数値として評価できる場合は、JavaScriptで数式を実行できます。

let y = 20 / "5";   // y will be 4

上記の例では、文字列"5"はJavaScriptで数値として評価できるため、そのように扱われ、除算の数学演算子/で機能します。

操作で使用される変数に値NaNを割り当てると、他のオペランドが有効な数値であっても、NaNの値になります。

let a = NaN;
let b = 37;
let c = a + b;  // c will be NaN

JavaScriptには1つの数値データ型しかありません。 数字を扱う場合、入力した数字は数字のデータ型として解釈されます。 JavaScriptは動的に入力されるため、入力するデータの種類を宣言する必要はありません。

文字列

stringは、1つ以上の文字(文字、数字、記号)のシーケンスです。 文字列は、テキストデータを表すという点で便利です。

JavaScriptでは、文字列は一重引用符'または二重引用符"のいずれかに存在するため、文字列を作成するには、文字のシーケンスを引用符で囲みます。

let singleQuotes = 'This is a string in single quotes.';
let doubleQuotes = "This is a string in double quotes.";

単一引用符または二重引用符のどちらを使用するかを選択できますが、どちらを選択した場合でも、プログラム内で一貫性を保つ必要があります。

プログラム「Hello、World!」以下のalert()のフレーズHello, World!を構成する文字は文字列であるため、文字列をコンピュータプログラミングで使用する方法を示します。

hello.html







コードを実行してClick meボタンをクリックすると、次の出力を含むポップアップが表示されます。

OutputHello, World!

他のデータ型と同様に、変数に文字列を保存できます。

let hw = "Hello, World!";

そして、変数を呼び出して、alert()に文字列を表示します。

hello.html

...

...
OutputHello, World!

私たちが探している結果を達成するためにそれらを操作するために、プログラム内の文字列に対して実行できる多くの操作があります。 文字列は、ユーザーに情報を伝達するため、およびユーザーがプログラムに情報を戻すために重要です。

ブール値

Booleanデータ型は、trueまたはfalseの2つの値のいずれかになります。 ブールは、コンピューターサイエンスのアルゴリズムに情報を与える数学の論理分岐に関連付けられている真理値を表すために使用されます。

データ型ブール値が表示される場合は常に、数学者のジョージブールにちなんで名付けられているため、大文字のBで始まります。

数学の多くの演算は、trueまたはfalseに評価される答えを提供します。

  • より大きい

    • 500> 100true

    • 1> 5false

  • 未満

    • 200 <400true

    • 4 <2false

  • 等しい

    • 5 = 5true

    • 500 = 400false

他のデータ型と同様に、変数にブール値を格納できます。

let myBool = 5 > 8; // false

5は8以下であるため、変数myBoolの値はfalseになります。

JavaScriptでより多くのプログラムを記述すると、ブール値がどのように機能するか、trueまたはfalseのいずれかに評価されるさまざまな関数および操作がプログラムのコースを変更する方法に慣れます。

配列

arrayは、単一の変数内に複数の値を保持できます。 これは、配列内に値のリストを含めて、それらを反復処理できることを意味します。

配列内にある各項目または値は、elementと呼ばれます。 インデックス番号を使用して、配列の要素を参照できます。

文字列が引用符で囲まれた文字として定義されているのと同様に、配列は角括弧[ ]の間に値を置くことで定義されます。

たとえば、文字列の配列は次のようになります。

let fish = ["shark", "cuttlefish", "clownfish", "eel"];

変数fishを呼び出すと、次の出力が返されます。

["shark", "cuttlefish", "clownfish", "eel"]

配列は、要素値を追加、削除、変更できるという点で可変であるため、非常に柔軟なデータ型です。

オブジェクト

JavaScriptのobjectデータ型には、name:valueペアとして多くの値を含めることができます。 これらのペアは、データを保存およびアクセスする便利な方法を提供します。 オブジェクトリテラル構文は、{ }の両側に中括弧が付いたコロンで区切られたname:valueのペアで構成されます。

通常、IDに含まれる情報など、関連するデータを保持するために使用されるJavaScriptオブジェクトリテラルは、プロパティ間に空白が含まれるこのようになります。

let sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};

あるいは、特に名前と値のペアが多数あるオブジェクトリテラルの場合、各コロンの後に空白を入れて、このデータ型を複数の行に書き込むことができます。

let sammy = {
    firstName: "Sammy",
    lastName: "Shark",
    color: "blue",
    location: "Ocean"
};

上記の各例のオブジェクト変数sammyには、firstNamelastNamecolor、およびlocationの4つのプロパティがあります。 これらはそれぞれ、コロンで区切られた渡された値です。

複数のデータ型の使用

作成する各プログラムには複数のデータ型が含まれますが、通常は同じデータ型内で操作を実行することに注意してください。 つまり、数値に対して数学を実行したり、文字列をスライスしたりします。

数値を追加したり文字列を連結したりできる+演算子など、データ型全体で機能する演算子を使用すると、予期しない結果が生じる可能性があります。

たとえば、+演算子を数値と文字列とともに使用すると、数値は文字列として扱われます(したがって、連結されます)が、データ型の順序は連結に影響します。

したがって、次の連結を実行する変数を作成すると、JavaScriptは以下の各要素を文字列として解釈します。

let o = "Ocean" + 5 + 3;

o変数を呼び出すと、次の値が返されます。

OutputOcean53

ただし、数字でリードする場合、プログラムの実行時間が"Ocean"に達すると、2つの数字が加算されてから文字列として解釈されるため、戻り値は、文字列と連結された2つの数字の合計になります。

let p = 5 + 3 + "Ocean";
Output8Ocean

これらの予期しない結果のため、操作とメソッドを、それら全体ではなく1つのデータタイプ内で実行する可能性があります。 ただし、JavaScriptは、他の一部のプログラミング言語が行うように、データ型を混合するときにエラーを返しません。

結論

この時点で、JavaScriptで使用できる主要なデータ型のいくつかをよりよく理解する必要があります。

JavaScript言語でプログラミングプロジェクトを開発すると、これらの各データ型が重要になります。