number

編集

number は、JavaScriptにおける基本的なデータ型(プリミティブ型)の1つで、数値を表します。JavaScriptでは、すべての数値が64ビット浮動小数点形式(IEEE 754 規格)で表現されます。

特徴

編集
  • JavaScriptの数値型は、整数と浮動小数点数を区別せずに扱います。
  • 53ビットの精度を持つ整数(±9,007,199,254,740,991まで)を正確に表現できます。
  • 特殊な値として、Infinity-InfinityNaN(数値ではない)があります。

使用例

編集
const num = 42;          // 整数
const pi = 3.14;         // 浮動小数点数
const big = 1e6;         // 指数表記
const hex = 0xFF;        // 16進数
const bin = 0b1010;      // 2進数
const oct = 0o755;       // 8進数

console.log(typeof num); // "number"

数値演算

編集

number型は、基本的な算術演算をサポートします。

加減乗除

編集
const a = 10;
const b = 3;

console.log(a + b); // 13
console.log(a - b); // 7
console.log(a * b); // 30
console.log(a / b); // 3.333...

余り(剰余)

編集
console.log(10 % 3); // 1

冪乗

編集
console.log(2 ** 3); // 8

特殊な数値

編集

JavaScriptには、特殊なnumber値が存在します。

Infinity と -Infinity

編集
  • Infinity は正の無限大を表します。
  • -Infinity は負の無限大を表します。
  • これらはゼロによる除算などで生成されます。
console.log(1 / 0);  // Infinity
console.log(-1 / 0); // -Infinity
  • NaN(Not-a-Number)は、無効な数値計算の結果として生成されます。
console.log(0 / 0);   // NaN
console.log(Math.sqrt(-1)); // NaN

numberの型変換

編集

number型は、他の型と相互に変換される場合があります。

文字列への変換

編集
  • 数値を文字列に変換するには、String().toString() メソッドを使用します。
console.log(String(42));       // "42"
console.log((42).toString());  // "42"

真偽値への変換

編集
  • 0NaNfalsy ですが、それ以外の数値はすべて truthy です。
console.log(Boolean(0));   // false
console.log(Boolean(42));  // true
console.log(Boolean(NaN)); // false

number型のリテラル表現

編集

JavaScriptでは、数値は以下のリテラル形式で表現できます:

  • 10進数(例:123
  • 16進数(例:0x1A
  • 2進数(例:0b1101
  • 8進数(例:0o755
  • 指数表記(例:1e3

numberに関連するメソッド

編集

number型は、以下のような便利なメソッドを持つ Number オブジェクトと共に利用されます。

console.log(Number.isFinite(42));      // true
console.log(Number.isNaN(NaN));        // true
console.log(Number.parseInt("42px")); // 42
console.log(Number.parseFloat("3.14"));// 3.14

注意点

編集
  • JavaScriptのnumber型は、整数浮動小数点数の区別をしないため、精度の問題が発生する場合があります。
console.log(0.1 + 0.2 === 0.3); // false

まとめ

編集
  • number型は、JavaScriptで数値を扱うための基本的なデータ型です。
  • 浮動小数点数として表現されるため、特定のケースでは精度に注意が必要です。
  • InfinityNaN などの特殊な値にも対応しています。