「JavaScript/Global」の版間の差分
削除された内容 追加された内容
→数値処理関数: <syntaxhighlight lang="javascript"> ほか |
→数値処理関数: Fix </syntaxhighlight>; Numberの同名のメソッドとの比較を加筆。 |
||
79 行
=== 数値処理関数 ===
グローバルオブジェクトのメソッドは、いくつかの数値処理関数を標準で用意している。
これらは、Numberオブジェクトのメソッドの別名である場合と、機能的に近いものの挙動が違うものがあるので利用にあたっては注意が必要である。
==== parseInt(string , radix) ====
与えられた文字列を、先頭から解釈して整数に変換する。第2引数では、何進法とみなして変換を行うのかを指定する。
規格上、第2引数は省略した場合 0x で始まる16進法表記以外は10進法とみなして自動で変換を行っている。
Number.parseInt()の別名。
<syntaxhighlight lang="javascript">
document.write( parseInt('10') ); // 10を表示
document.write( parseInt('10', 8 ) ); // 8を表示; 8進法として解釈、
document.write( parseInt('0x10') ); // 16を表示; 0xで始まる場合は16進数として
document.write( parseInt('0177') ); // 177を表示; 0で始まる場合も10進数として
document.write( parseInt('0o77') ); // 0を表示; 0oで始まる場合も10進数として
document.write( parseInt('0b10') ); // 0を表示; 0bで始まる場合も10進数として
document.write( parseInt('ZERO') ); // 例外にならず NaN を表示; 1文字も数値として解釈できない。
document.write( parseInt('3_14') ); // 3 を表示; _ を区切り文字とする記法には対応しない。
document.write( Number.parseInt === parseInt ); // Number.parseInt の別名。true を表示
</syntaxhighlight>
==== parseFloat(string) ====
与えられた文字列を、JavaScriptのNumber型のオブジェクトに変換する。
Number.parseFloat() の別名。
<syntaxhighlight lang="javascript">
document.write( parseFloat('10') ); // 10が表示
document.write( parseFloat('10.00') ); // 10が表示
document.write( parseFloat('0x10') ); // 16進数としては評価されない。最初の数字の「0」まで表示
document.write( parseFloat('10e+4') ); // 1000
document.write( parseFloat('10E-3') ); // 0.01
document.write( parseFloat('Infinity') ); // Infinity
document.write( parseFloat('-Infinity') );// -Infinity
document.write( parseFloat('NaN') ); // NaN
document.write( parseFloat('Text') ); // NaN
document.write( parseFloat('9n') ); // 99
document.write( typeof parseFloat('9n') );// bigint でなく number
document.write( typeof eval('9n') ); // bigint
document.write( Number.parseFloat === parseFloat ); // Number.parseFloat の別名。true を表示
</syntaxhighlight>
==== isNaN(number) ====
引数の値がNaN(Not-a-Number)であればtrueを、それ以外はfalseを
Number.isNaN() とは動作が異なる。
<syntaxhighlight lang="javascript">
document.write( isNaN(NaN) ); // true
document.write( isNaN(Math.sqrt(-1)) ); // true
document.write( isNaN(Math.sqrt( Infinity/Infinity )) ); // true
document.write( Number.isNaN === isNaN ); // falseを表示; Number.isNaN ではない
document.write( isNaN("NaN") ); // trueを表示; Stringからnumberに型変換され評価
document.write( Number.isNaN("NaN") ); // falseを表示; number でなければ false と即断
</syntaxhighlight>
==== isFinite(number) ====
渡された値が有限数かどうかを判定する(Finiteは英語で「有限な」)。
正あるいは負の Infinity か NaN か undefined の時 false を返し、それ以外は true を
Number.isFinite() とは動作が異なる。
<syntaxhighlight lang="javascript">
document.write( isFinite(Infinity) ); // falseを表示
document.write( isFinite(100) ); // trueを表示
document.write( Number.isFinite
document.write(
document.write( Number.isFinite(null) );// falseを表示; number でなければ false と即断
document.write( isFinite("Infinity") ); // falseを表示; Stringからnumberに型変換され評価
</syntaxhighlight>
|