JavaScript勉強メモ5章
5章数値
-
浮動小数点数ってなに
小数点の位置が固定されていない(浮動)数のこと。
大きな数から小さな数まで表現できる。 -
リテラルってなに
ルールのこと。例えば- 文字リテラル:"この中身は文字として扱われます"
- 真偽値リテラル:true, false の二つは真偽値です
- 整数リテラル:42 とか1000 は整数です
- 浮動小数リテラル:3.14 とか2e8 は小数です
-
数値リテラル
整数リテラルと浮動小数リテラルのこと -
Numberオブジェクト
数値のラッパークラス。ラッパークラスは3章でやったけどよくわからなかった。プリミティブ型のデータである数値をオブジェクトとして使うとき、なにもせず使えるのはこのNumberオブジェクトがいるかららしい(感謝)- Numberオブジェクトの静的プロパティ
Numberオブジェクトに用意されてる設定みたいなもの。表示はもちろんconsole.logで
console(Number.MAX_VALUE); >> 1.7976931348623157e+308/*扱える最大の数値*/ console.log(Number.MAX_VALUE*2);/*それを2倍したのを表示して*/ >>Infinity/*無限として扱います(無理)*/
- Numberオブジェクトの静的プロパティ
-
数値を指定の基数の形式で文字列に変換する (toStringメソッド)
日本語でok。以下訳
(10って2進数で表すといくつだっけ?答えは数値じゃなくて文字列で教えてね)
※基数とはこのときの2進数の"2"のことlet num = 10; /*numって箱に10っていう数値を入れるよ*/ console.log(num.toStoring(2))/*numを2進数で表して教えてね*/ >>1010
numって箱にいちいち入れないとだめなの?
←駄目じゃないけどtoString使いたかったら数値をかっこでくくってねconsole.log((10).toString(2)); >>1010
-
数値を指数形式で文字列に変換する(toExponentialメソッド)
指数形式でもできる...わかった気になっておきます。
浮動小数形式だから、勝手に小数点の前の桁数を1にしちゃうらしい。let num = 34.5642; console.log(num.toExponential(2));/*小数点の前は1桁(固定)、小数点の後ろは()の中の"2"桁で教えてね*/ >>3.46e+1
-
数値を固定小数点数形式で(toFixed)
今度は固定小数点形式らしい。小数点の位置は対象の数値と同じまま。console.log((34.5642).toFixed(3))/*小数点の位置はそのまま後ろは"3"桁まで教えてね*/ >>34.564
-
数値の有効桁数を指定して(toPrecisionメソッド)
有効桁数ってなに
その数字を指定された桁数で表示するよ。有効数字3桁の例:3.14, 100, 5.68e+3, ...etcconsole.log((5678.9)toPrecision(4);/*5桁の数字を4桁で教えてね*/ >>5679
-
数値を指定したロケールに応じた形式で文字列に(toLocaleStringメソッド)
ロケールってなに
日本だと数値を見やすくするために3桁ごとにカンマ(,)で区切るよね。そういうルールのことらしい()。console.log((8242.56).toLocaleString()); >>8,242.56
-
文字列を整数に変換する(Number.parseIntメソッド)
今度は文字列を整数の数値にするよ。parseIntのIntは大文字のIを使って(アイ・エヌ・ティー)だよ。Lntにしないように。基数(何進法か)選べるよ。何も指定されなかったら空気読んで10進法にしとくよ。console.log(Number.perseInt("9月"));/*文字列"9月"を整数で返してね。*/ >>9 console.log(Number.perseInt("month9")); >>NaN/*文字列の先頭に数値がないとばぐるよ*/
-
文字列を浮動小数点数に変換する(Number.parseFloatメソッド)
文字列を浮動小数点数(小数点使って表すよ、小数点の位置は勝手に調整する)にするよ。console.log(Number.perseFloat(42.25)); >>42.25
-
値がNaNかつ数値型であるか調べる(Number.isNaN)
NaN(Not a Number):数値じゃないものを数値に変換したときの値。
注意しなきゃいけないのはNaN自体は数値として扱われるということ。(Not a Numberが数値とはこれいかに)
タイトルのメソッドは引数がNaNかNaNじゃないかの判定を行うよ。
引数ってなに
メソッドの対象になる数値や文字列のこと。console.log(typeof(NaN));/*NaNは何型のデータか教えてね*/ >>number/*NaNは数値だよ(哲学)*/ console.log(Number.isNaN(NaN)); >>true console.log(Number.isNaN("apple")) >>false
-
値が有限でかつ数値型であるかどうか調べる(Number.isFinite)
引数が数値じゃなかったらfalse返すよ。数値でもNaNとか無限だったらfalse返すよ。まともな数値ならok。console.log(Number.isFinite(100)); >>true console.log(Number.isFinite(Infinity)); >>false/*無限は帰れ*/ console.log(Number.isFinite("apple")); >>false/*文字列も帰れ*/
仲良しなメソッドにisFiniteがいるよ。これは数値が文字列になってても数値だと判定するよ。
console.log(Number.isFinite("2")); >>false console.log(isFinite("2")); >>true
-
最後に値が整数かどうか調べるよ(Number.isInteger, Number.isSafeInteger)
二つともIntegerの頭文字は大文字のI(アイ)だから注意してね。名前の通り引数が整数ならtrue、それ以外ならfalse返すよ。console.log(Number.isInteger(100)); >>true console.log(Number.isInteger("100")); >>false
二つ目のNumber.isSafeIntegerメソッドは値が整数であっても安全でなければfalse返すよ。安全な整数の定義は理解諦めました()。