メインコンテンツにスキップ
モジュール 2 · レッスン 3 / 4コース内の 7/32~10 min
モジュールのレッスン (3/4)

数字と数学

JavaScript には 数値型は 1 つだけ: number です。両方の整数 そこには小数点 (floating point) が存在します。個別の int / float はありません 他の言語と同じように。

JS
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number'   ← Infinity is a special number
typeof NaN; // 'number'   ← even "Not a Number" is a number (!)

グローバル Math オブジェクト

Math は関数ではありません。便利なメソッドを備えた オブジェクト です。 定数。インスタンス化せず、直接使用します。

JS
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4   (always rounds down)
Math.ceil(4.1); // 5   (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024   (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793

乱数

Math.random() は、0 (含まれる) と 1 (含まれない) の間の小数を返します。 範囲内の整数を取得するには、次のような小さな式を使用します。

JS
// Random integer between 0 and 9
Math.floor(Math.random() * 10);

// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;

小数 (浮動小数点) の苦痛

JS は、ほぼすべてのものと共有される IEEE-754 64 ビット表現を使用します。 言語。 バイナリ表現であるため、一部の小数は表現できません。 正確に表現すると:

JS
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // false

標準的な解決策: toFixed(n) (文字列を返す) で丸めるか、 お金を扱うときは、セント/千分の整数を使用します。

JS
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)

試してみてください

運動#js.m2.l3.e1
試行回数: 0読み込み中…

半径「r = 5」の円の面積を小数点以下第 2 位に四捨五入して「数値」として計算します。 「r=5」の場合、78.54 が予想されます。

エディターを読み込み中…
ヒントを表示

円周率の場合は Math.PI、べき乗の場合は **。 .toFixed(2) で丸め、Number(...) で数値に戻します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m2.l3.e2
試行回数: 0読み込み中…

3 つの数値 12、7、23 を指定すると、最大値と最小値の差 (つまり 16) が最後の式として返されます。

エディターを読み込み中…
ヒントを表示

Math.max と Math.min は、複数のカンマ区切りの引数を受け入れます。

3 回の試行後に解決策が利用可能になります