JavaScript の値は常に特定の型です。例えば、文字列や数値です。
JavaScript には8つの基本的なデータ型があります。ここでは基本を学び、次のチャプターでそれらの詳細について話しましょう。
なお、変数はどんなデータでも入れることができます。変数はある時点では文字列で、その後数値を設定することができます:
// エラーなし
let message = "hello";
message = 123456;
このようなことができるプログラミング言語は “動的型付け” と呼ばれ、データ型はありますが、変数はそのどれにもバインドされないことを意味します。
数値
let n = 123;
n = 12.345;
数値 型は整数と浮動小数点両方に使われます。
数値に関する多くの操作があります、 e.g. 乗算 *, 除算 /, 加算 +, 減算 - など。
通常の数値に加えて、これらのタイプに属する “特別な数値型” もあります。: Infinity、 -Infinity、 NaN.
-
Infinityは数学的な無限大 ∞ を表します。どの値よりも大きい特別な値です。ゼロによる除算でそれを得ることができます。:
alert( 1 / 0 ); // 無限大もしくは、単にコードに直接書くこともできます:
alert( Infinity ); // 無限大 -
NaNは計算上のエラーを表します。正しくないもしくは未定義の数学的な操作の結果です。例:alert( "not a number" / 2 ); // NaN, このような除算は誤りですNaNは粘着性です。NaN以降はどのような操作をしてもNaNになります:alert( "not a number" / 2 + 5 ); // NaNそのため、数学的な表現の中のどこかに
NaNがある場合、結果全体に伝搬します。
JavaScriptでは数学をするのは安全です。ゼロによる除算、数値ではない文字列を数値として扱う、など何でもできます。
スクリプトは致命的なエラー(“死”)で止まることはありません。 最悪の場合でも NaN という結果になります。
特別な数値は正式には “数値” 型に所属します。もちろん、常識では数値ではありませんが。
チャプター 数値 でより数値の動作について見ていきます。
BigInt
JavaScript では、“数値” 型は (253-1) (つまり 9007199254740991) より大きい、あるいは負値であれば -(253-1) より小さい整数を表現することができません。これらは内部表現に起因する技術的な制限です。
ほとんどの目的ではこれで十分ですが、場合によっては非常に大きな数が必要になります。例えば暗号化やマイクロ秒の精度のタイムスタンプです。
BigInt 型は任意の長さの整数を表現するために、最近言語に追加された型です。
BigInt の値は整数値の末尾に n を追加することで作成されます:
// 末尾の "n" は BigInt を意味します
const bigInt = 1234567890123456789012345678901234567890n;
BigInt の数値はめったに必要とされないのでここでは説明しませんが、別のチャプター BigInt で記載しています。このような大きな数値が必要なときは参照してください。
現時点では、BigInt は Firefox/Chrome/Edge/Safari でサポートされていますが、IE ではサポートされていません。