JavaScriptのデータ型を理解する
序章
データ型は、プログラミング言語で特定の種類のデータを分類するために使用されます。 たとえば、数字と文字列は、JavaScriptによって異なる方法で処理される異なるタイプのデータです。
使用する特定のデータ型によって、それに割り当てることができる値とそれに何ができるかが決まるため、これは重要です。 つまり、JavaScriptで変数を操作できるようにするには、特定の変数のデータ型を理解することが重要です。
このチュートリアルでは、JavaScriptでデータ型がどのように機能するか、およびその言語に固有の重要なデータ型について説明します。 これはデータ型の徹底的な調査ではありませんが、JavaScriptで使用できるオプションを理解するのに役立ちます。
動的型付け
JavaScriptには動的なデータ型があります。つまり、型のチェックはコンパイル時ではなく実行時に行われます。 Pythonのデータ型も動的に型付けされます。
動的型付け言語では、同じ名前の変数を使用して異なるデータ型を保持できます。
たとえば、let
キーワードによって変数として定義された変数t
(let
は、特定の変数のスコープを制限することに注意してください)を割り当てて、さまざまなデータを保持できます。タイプ、または初期化できますが未定義のままにすることができます:
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
—無限に近づく正の数を表す数値-Infinity
—無限に近づく負の数を表す数値NaN
— n ot a numberを表す非数値を表す数値
Infinity
または-Infinity
は、JavaScriptで使用可能な最大数以外の数を計算した場合に返されます。 これらは、ゼロ除算の場合のように、未定義の値に対しても発生します。
let num7 = 5 / 0; // will return Infinity
let num8 = -5 / 0; // will return -Infinity
技術的には、JavaScriptの上限である1.797693134862315E+308
を超えると、Infinity
が表示されます。
同様に、数値が-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は動的に型付けされるため、入力するデータ型の種類を宣言する必要はありません。
文字列
文字列は、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!
を構成する文字は文字列であるため、コンピュータープログラミングで文字列を使用する方法を示します。
<!DOCTYPE HTML>
<html>
<head>
<script>
function helloFunction() {
alert("Hello, World!");
}
</script>
</head>
<body>
<p><button onclick="helloFunction()">Click me</button></p>
</body>
</html>
コードを実行してClick me
ボタンをクリックすると、次の出力を含むポップアップが表示されます。
OutputHello, World!
他のデータ型と同様に、文字列を変数に格納できます。
let hw = "Hello, World!";
そして、変数を呼び出して、alert()
に文字列を表示します。
...
<script>
let hw = "Hello, World!";
function helloFunction() {
alert(hw);
}
</script>
...
OutputHello, World!
求めている結果を達成するために文字列を操作するために、プログラム内の文字列に対して実行できる操作はたくさんあります。 文字列は、ユーザーに情報を伝達するため、およびユーザーがプログラムに情報を伝達するために重要です。
ブール値
Boolean データ型は、trueまたはfalseの2つの値のいずれかになります。 ブール値は、数学の論理ブランチに関連付けられている真理値を表すために使用されます。これは、コンピューターサイエンスのアルゴリズムに情報を提供します。
数学の多くの演算は、真または偽のいずれかに評価される答えを私たちに与えます。
- より大きい
- 500> 100
true
- 1> 5
false
- 500> 100
- 未満
- 200 <400
true
- 4 <2
false
- 200 <400
- 同等
- 5 = 5
true
- 500 = 400
false
- 5 = 5
他のデータ型と同様に、ブール値を変数に格納できます。
let myBool = 5 > 8; // false
5は8以下であるため、変数myBool
の値はfalse
です。
JavaScriptでより多くのプログラムを作成するにつれて、ブール値がどのように機能するか、およびtrueまたはfalseのいずれかに評価されるさまざまな関数や操作がプログラムのコースをどのように変更できるかを理解するようになります。
配列
array は、単一の変数内に複数の値を保持できます。 これは、配列内に値のリストを含めて、それらを反復処理できることを意味します。
配列内にある各項目または値は、要素と呼ばれます。 インデックス番号を使用して、配列の要素を参照できます。
文字列が引用符で囲まれた文字として定義されるのと同様に、配列は角かっこ[ ]
で囲まれた値で定義されます。
たとえば、文字列の配列は次のようになります。
let fish = ["shark", "cuttlefish", "clownfish", "eel"];
変数fish
を呼び出すと、次の出力が返されます。
["shark", "cuttlefish", "clownfish", "eel"]
配列は、要素値を追加、削除、および変更できるという点で変更可能であるため、非常に柔軟なデータ型です。
オブジェクト
JavaScriptのオブジェクトデータ型には、 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
には、firstName
、lastName
、color
、およびlocation
の4つのプロパティがあります。 これらはそれぞれ、コロンで区切られた渡された値です。
複数のデータ型の操作
作成する各プログラムには複数のデータ型が含まれますが、通常は同じデータ型内で操作を実行することに注意してください。 つまり、数字に対して数学を実行したり、文字列をスライスしたりします。
数値を追加したり文字列を連結したりできる+
演算子など、データ型全体で機能する演算子を使用すると、予期しない結果が生じる可能性があります。
たとえば、+
演算子を数値と文字列で一緒に使用すると、数値は文字列として扱われます(したがって、連結されます)が、データ型の順序は連結に影響します。
したがって、次の連結を実行する変数を作成すると、JavaScriptは以下の各要素を文字列として解釈します。
let o = "Ocean" + 5 + 3;
o
変数を呼び出すと、次の値が返されます。
OutputOcean53
ただし、数字でリードすると、プログラムの実行時間が"Ocean"
に達すると、2つの数字が加算されてから文字列として解釈されるため、戻り値は、文字列と連結された2つの数字の合計になります。 :
let p = 5 + 3 + "Ocean";
Output8Ocean
これらの予期しない結果のために、操作とメソッドを、それら全体ではなく、1つのデータ型内で実行する可能性があります。 ただし、JavaScriptは、他のプログラミング言語のように、データ型を混合するときにエラーを返しません。
結論
この時点で、JavaScriptで使用できる主要なデータ型のいくつかをよりよく理解する必要があります。
これらの各データ型は、JavaScript言語でプログラミングプロジェクトを開発するときに重要になります。