JavaScriptの型判定について
JavaScriptにおける数値か文字列かの判定
JavaScriptでは、変数の型は動的に決定されます。つまり、変数の値が変わるたびに型も変化する可能性があります。そのため、変数が数値なのか文字列なのかを判定する必要がある場面が頻繁に発生します。
判定方法
JavaScriptで変数が数値か文字列かを判定する主な方法をいくつか紹介します。
typeof演算子
最も一般的な方法は、typeof
演算子を使用することです。
let num = 123;
let str = "hello";
console.log(typeof num); // Output: "number"
console.log(typeof str); // Output: "string"
typeof
演算子は、変数の型を表す文字列を返します。
isNaN()関数
isNaN()
関数は、引数が数値でない場合にtrue
を返します。
let num = 123;
let str = "hello";
console.log(isNaN(num)); // Output: false
console.log(isNaN(str)); // Output: true
- この方法では、数値以外の文字列だけでなく、数値に変換できない文字列も判定できます。
正規表現
正規表現を使用することもできます。
let num = 123;
let str = "hello";
console.log(/^\d+$/.test(num)); // Output: true
console.log(/^\d+$/.test(str)); // Output: false
- この方法は、数値の形式に一致するかどうかを厳密にチェックできます。
注意点
- 正規表現は、数値の形式を厳密にチェックできますが、複雑な条件を記述する必要がある場合があります。
isNaN()
関数は、数値に変換できない文字列も数値として判定する場合があります。typeof
演算子は、数値と文字列だけでなく、他のデータ型も判定できます。
判定方法の例
let num = 123;
let str = "hello";
console.log(typeof num); // Output: "number"
console.log(typeof str); // Output: "string"
let num = 123;
let str = "hello";
console.log(isNaN(num)); // Output: false
console.log(isNaN(str)); // Output: true
let num = 123;
let str = "hello";
console.log(/^\d+$/.test(num)); // Output: true
console.log(/^\d+$/.test(str)); // Output: false
JavaScriptの型判定について
JavaScriptでは、変数の型は動的に決定されるため、型判定が重要です。適切な型判定を行うことで、プログラムのエラーを防ぎ、正しい処理を実現することができます。
判定方法の代替方法
Number.isInteger()関数
- 整数かどうかを判定します。
let num = 123;
let str = "hello";
console.log(Number.isInteger(num)); // Output: true
console.log(Number.isInteger(str)); // Output: false
Number.isNaN()関数
isNaN()
関数と同様ですが、数値に変換できない文字列を数値として判定しません。
let num = 123;
let str = "hello";
console.log(Number.isNaN(num)); // Output: false
console.log(Number.isNaN(str)); // Output: true
parseInt()関数とparseFloat()関数
- 文字列を数値に変換し、変換に失敗した場合には
NaN
を返します。
let numStr = "123";
let str = "hello";
console.log(parseInt(numStr)); // Output: 123
console.log(parseInt(str)); // Output: NaN
console.log(parseFloat(numStr)); // Output: 123
console.log(parseFloat(str)); // Output: NaN
parseInt()
関数とparseFloat()
関数は、文字列を数値に変換し、変換に失敗した場合にはNaN
を返します。Number.isNaN()
関数は、数値に変換できない文字列を数値として判定しません。Number.isInteger()
関数は、整数かどうかを判定します。
javascript types