eval【構文評価】関数
isFinite【有限数 判定】関数
isNaN【非数 判定】関数
parseFloat【文字列 → 浮動小数点数 変換】関数
parseInt【文字列 → 整数 変換】関数

eval【構文評価】

メモ

  • JavaScript 構文として評価し、実行結果を返却 (evaluate:評価する)
  • 悪意のあるコードの実行に注意

構文

eval ( x )

  • x:JavaScript 構文文字列

  • 実行結果
  • 文字列以外は x そのまま

console.log(eval("1 + 2 + 3")); // 出力:6
var x = 1;
var y = 2;
var z = 3;
console.log(eval("x + y + z")); // 出力:6

isFinite【有限数 判定】

メモ

  • 有限数の判定
  • 数値変換の為、isFinite(null)・isFinite("0") は true
  • 厳密に判定する場合、Number.isFinite【有限数 判定】 :数値変換なし (違いの詳細あり)

構文

isFinite ( number )

  • number:判定値
    number戻り値
    NaNfalse
    +Infinity (+∞)false
    -Infinity (-∞)false
    数値true (有限数)
    上記以外は、
    数値変換
    undefined → NaNfalse
    null → 0true (有限数)
    (数値変換可) → 数値true (有限数)
    (数値変換不可) → NaNfalse

  • true:有限数
  • false:その他

console.log(isFinite(NaN));        // 出力:false
console.log(isFinite(+Infinity));  // 出力:false
console.log(isFinite(-Infinity));  // 出力:false
console.log(isFinite(123));        // 出力:true
console.log(isFinite(undefined));  // 出力:false
console.log(isFinite(null));       // 出力:true
console.log(isFinite("123"));      // 出力:true
console.log(isFinite("abc"));      // 出力:false

isNaN【非数 判定】

メモ

  • 非数の判定
    • NaN == NaN と NaN === NaN はどちらも false の為、演算子での判定不可
      但し、X !== X が true となるのは、X が NaN の場合のみ
    • グローバルのNaNNumber.NaN は同等
  • 数値変換される為、isNaN(undefined)・isNaN("NaN") 等が true:厳密にするには下記の方法
    • X !== X を判定:結果が true となるのは、X が NaN の場合のみ
    • Number.isNaN【非数判定】 :数値変換なし (違いの詳細あり)

構文

isNaN ( number )

  • number:判定値
    number戻り値
    NaNtrue (非数)
    数値false
    上記以外は、
    数値変換
    undefined → NaNtrue (非数)
    null → 0false
    (数値変換可) → 数値false
    (数値変換不可) → NaNtrue (非数)

  • true:非数
  • false:その他

console.log(isNaN(NaN));        // 出力:true
console.log(isNaN(+Infinity));  // 出力:false
console.log(isNaN(-Infinity));  // 出力:false
console.log(isNaN(123));        // 出力:false
console.log(isNaN(undefined));  // 出力:true
console.log(isNaN(null));       // 出力:false
console.log(isNaN("123"));      // 出力:false
console.log(isNaN("NaN"));      // 出力:true
console.log(NaN == NaN);        // 出力:false
console.log(NaN === NaN);       // 出力:false

console.log(NaN !== NaN);             // 出力:true
console.log(Number.isNaN(NaN));       // 出力:true
console.log(Number.isNaN(undefined)); // 出力:false
console.log(Number.isNaN("NaN"));     // 出力:false

parseFloat【文字列 → 浮動小数点数 変換】

メモ

構文

parseFloat ( string )

  • string:数値文字列
    文字列型でない場合、文字列型に変換
    先頭ホワイトスペースは無視
    無効文字があれば、直前の文字までを変換
    変換できない場合、NaN

  • 浮動小数点数 (Number型)
  • NaN:変換不可

console.log(parseFloat("123.456")); // 出力:123.456
console.log(parseFloat("1234e-2")); // 出力:12.34
console.log(parseFloat("    123")); // 出力:123
console.log(parseFloat("123x"));    // 出力:123
console.log(parseFloat("abc"));     // 出力:NaN
console.log(parseFloat(+Infinity)); // 出力:Infinity
console.log(parseFloat(-Infinity)); // 出力:-Infinity
console.log(parseFloat(undefined)); // 出力:NaN
console.log(parseFloat(null));      // 出力:NaN

parseInt【文字列 → 整数 変換】

メモ

構文

parseInt ( string, radix )

  • string:数値文字列
    文字列型でない場合、文字列型に変換
    先頭ホワイトスペースは無視
    無効文字があれば、直前の文字までを変換
    変換できない場合、NaN
  • radix:基数 (2~36)
    radix処理
    undefined または 0 自動判定
    stringが "0x" または "0X" で始まっていれば 16進数
    それ以外は 10進数
    (実装によっては、8進数も対応)
    範囲外NaN
    数値型以外数値型に変換

  • 整数 (Number型)
  • NaN:変換不可

console.log(parseInt("10", 2));       // 出力:2
console.log(parseInt("10", 10));      // 出力:10
console.log(parseInt("10", 16));      // 出力:16
console.log(parseInt("Z", 36));       // 出力:35
console.log(parseInt("    123", 10)); // 出力:123
console.log(parseInt("123x", 10));    // 出力:123
console.log(parseInt("abc", 10));     // 出力:NaN
console.log(parseInt(null, 10));      // 出力:NaN
console.log(parseInt(Infinity, 10));  // 出力:NaN
console.log(parseInt(undefined, 10)); // 出力:NaN
console.log(parseInt(999, 10));       // 出力:999

console.log(parseInt("10", 0));       // 出力:10
console.log(parseInt("0x10", 0));     // 出力:16
console.log(parseInt("123", 1));      // 出力:NaN
console.log(parseInt("123", 37));     // 出力:NaN
console.log(parseInt("123", "10"));   // 出力:123

関連