数値と数学

ショッピングカートが価格を合計し、ゲームがスコアを追跡し、フォームが請求する税額を計算します。すべては数値とそれらによる算術に帰結します。JavaScriptは数値を核となる構成要素の1つとして扱い、この章はそれらで何ができるかについてです。日常の数学、丸めとランダム性のための組み込みヘルパー、そしてほぼすべての人がつまずく部分、ページに入力されたテキストを足し合わせることができる数値に変換することについてです。
数値と算術
JavaScriptには1つの**数値**型があり、すべてをカバーしています。42のような整数と9.99のような小数は同じ種類の値なので、間で選ぶ必要はありません。
const price = 9.99;
const quantity = 3;
const total = price * quantity;
console.log(total); // 29.97数学は既に知っている記号を使います。+は足し算、-は引き算、*は掛け算、/は割り算です。もう1つはあまり見かけないかもしれません。%は余りです。割り算した後に何が残っているかを示します。
const remainder = 7 % 2;
console.log(remainder); // 17を2で割ると3余り1なので、7 % 2は1です。これは数値が偶数かどうかを確認する方法です。偶数を2で割ると何も余りません。そのため、number % 2は偶数の場合は0、奇数の場合は1です。
number型があるため、整数と小数は同じものであり、それらの間で選ぶ必要はありません。演算子は+ - * /と%(余り)です。便利なトリックは% 2です。偶数では0、奇数では1です。 Mathオブジェクト
基本的な演算子以上のものが必要な場合、JavaScriptは**Math**という組み込みの数学ヘルパーのコレクションを提供します。ドットで名前を付けて呼び出します。
console.log(Math.round(4.6)); // 5
console.log(Math.floor(4.6)); // 4
console.log(Math.ceil(4.1)); // 5Math.roundは最も近い整数に丸め、Math.floorは常に切り下げ、Math.ceilは常に切り上げます。また、Math.maxとMath.minがあり、与えられた数値の中で最大または最小を選びます。
console.log(Math.max(3, 8, 5)); // 8
console.log(Math.min(3, 8, 5)); // 3そしてMath.randomがあり、0から1まで(1は含まない)のランダムな小数を与えます。それ自体ではほぼ必要なものではないため、一般的なレシピはそれを掛けて床を取って、ランダムな整数を得ることです。
const roll = Math.floor(Math.random() * 6) + 1;
console.log(roll); // 4 (毎回異なる数値)Math.random() * 6は0から6までのどこかに着地し、Math.floorはそれを0から5の整数に落とし、+ 1それをサイコロの目1から6にシフトします。
Mathは既製の数学ヘルパーのツールボックスで、ドットで呼び出します。Math.round、Math.floor(切り下げ)、Math.ceil(切り上げ)、そしてMath.max / Math.minで最大と最小を取得します。Math.randomは0から1の小数を与え、覚える価値のあるレシピはMath.floor(Math.random() * n)でランダムな整数を取得することです。パターンを信じるのに数回かかったので、それをコピーしてゆっくり読んでください。 文字列を数値に変換する
ページに入力されたすべてのものは**テキスト**として到着します。数値に見えても同じです。ボックスに5と入力すると、数値5ではなく文字列"5"が得られます。これは重要です。なぜなら、2つの文字列に対する+は追加ではなく結合するからです。
const a = "5";
const b = "3";
console.log(a + b); // "53"、8ではない数学を行うには、テキストを最初に数値に変換します。最も明確な方法はNumber()です。
const count = Number("5");
console.log(count + 3); // 8他に2つ見かけます。parseIntは整数を読み、小数部を削除します。parseFloatは小数部を保持します。
console.log(parseInt("42px")); // 42
console.log(parseFloat("9.99")); // 9.99これらの両方は"42px"のようなテキストの開始時に座っている数値を読むことができ、Numberはできません。ショートカットもあります。文字列の前の+で、Numberと同じように変換されます。
console.log(+"7"); // 7"5"は数値5ではなく、"5" + "3"は8ではなく"53"を与えます。最初に変換します。Number("5")が最も明確で、parseIntは整数を読み、parseFloatは小数を保持し、文字列の前の+は素速いショートカットです。結合ではなく追加のトラップを見守ります。誰もが一度はそれにかかります。 数値の鋭いエッジ
JavaScriptの数値は早期に1回見る価値がある驚きを保持しています。2つの単純な小数を追加して、奇妙な答えを得ることができます。
console.log(0.1 + 0.2); // 0.30000000000000004これはあなたのコードのバグではありません。コンピューターは小数を、すべての値を正確に表現することができないようにストレージします。そのため、小さなエラーが忍び込みます。それはめったに問題になりませんが、そうなるときは、表示のために結果を丸めます。
const sum = 0.1 + 0.2;
console.log(Math.round(sum * 100) / 100); // 0.3また、NaNという値に出会う可能性があります。これは「数値ではない」の略です。数学演算に理にかなった答えがないときに取得します。例えば、ナンセンステキストを数値に変えようとするときです。
console.log(Number("hello")); // NaN出力にNaNを見ると、通常は変換がどこかで失敗しました。そのため、恐れるべき何かではなく、有用な手がかりです。
0.1 + 0.2は0.30000000000000004として出てきます。これは正常で、あなたのコードのバグではありません。重要な場合は、表示する前に結果を丸めます。そしてNaNは「数値ではない」を意味し、変換に失敗したときに得られる答えです。予期したようにテキストが数値に変わらなかったことをの手がかりとして扱います。 数値の次のステップ
数値はJavaScriptの少数のコアデータ型の1つで、テキストとtrue/false値と一緒に座っています。ほとんどの実際のプログラムはそれらを混ぜ、文字列から数値を引き出し、比較し、結果を変数に格納します。そしてその比較と組み合わせを行う演算子は、次の演算子の対象です。

