「JavaScript/Global」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎eval(x): {{コラム|JSONオブジェクト}}
Ef3 (トーク | 投稿記録)
→‎数値処理関数: <syntaxhighlight lang="javascript"> ほか
82 行
==== parseInt(string , radix) ====
与えられた文字列を、先頭から解釈して整数に変換する。第2引数では、何進法とみなして変換を行うのかを指定する。
規格上、第2引数は必要なもののはずだが、どの実装でも省略した場合 0x で始まる16進法表記以外は10進法とみなして自動で変換を行っている。
<syntaxhighlight lang="javascript">
<nowiki>
document.write( parseInt('10') ); // 10を表示
document.write( parseInt('10', 8 ) ); // 8進法として解釈、8を表示
document.write( parseInt('0x10') ); // 0xで始まる場合は16進数として、解釈。16を返す</nowiki>
document.write( parseInt('0177') ); // 0で始まる場合も10進数として、解釈。177を返す ※ES5 0を前置する8進数表現は ES3 で非推奨、ES5で廃止
document.write( parseInt('0o77') ); // 0oで始まる場合も10進数として、解釈。0を返す
document.write( parseInt('0b10') ); // 0bで始まる場合も10進数として、解釈。0を返す
document.write( parseInt('ZERO') ); // 1文字も数値として解釈できない。 例外ではなく NaN を返す
document.write( parseInt('3_14') ); // _ を区切り文字とする記法には対応しない。3 を返す
</nowiki>
 
==== parseFloat(string) ====
与えられた文字列を、JavaScriptのNumber型のオブジェクトに変換する。
<syntaxhighlight lang="javascript">
<nowiki>
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が表示される</nowiki>
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 が表示される
</syntaxhighlight>
 
==== isNaN(number) ====
引数の値がNaN(Not-a-Number)であればtrueを、それ以外はfalseを返す。
<syntaxhighlight lang="javascript">
<nowiki>
document.write( isNaN(NaN) ); // trueが表示
document.write( isNaN(Math.sqrt(-1)) ); // trueが表示
document.write( isNaN(Math.sqrt( Infinity/Infinity )) ); // trueが表示</nowiki>
</syntaxhighlight>
 
==== isFinite(number) ====
渡された値が有限数かどうかを判定する(Finiteは英語で「有限な」)。
引数の値が±∞のいずれかであればfalseを、そうでない場合はtrueを返す。
正あるいは負の Infinity か NaN か undefined の時 false を返し、それ以外は true を返す。
これは、通常の判別とtrueとfalseの結果が逆であるのに注意をする。
<syntaxhighlight lang="javascript">
<nowiki>
document.write( isFinite(Infinity) ); // false表示
document.write( isFinite(100) ); // true表示 </nowiki>
document.write( isFinite(null) ); // trueを表示
document.write( Number.isFinite(null) );// falseを表示 isFinite は Number.isFinite の別名ではない
</syntaxhighlight>
 
=== URLエンコード関連関数 ===