一、タイプ、インスタンス、Number.isInteger
- typeof は、
typeof
値が基本型であるかどうかを判断しますnumber
。
const num = 1;
typeof num === 'number'; // true
- instanceof は、
instanceof
値がラッパー クラスであるかどうかを判断しますNumber
。
const num = new Number(1);
num instanceof Number; // true
- Number.isInteger は、
Number.isInteger
値が以下であるかどうかを決定します整数
。
Number.isInteger(1); // true
Number.isInteger('1'); // false
Number.isInteger(1.1); // false
これらの方法の欠点は、型でしか判断できず、文字列が値であるかどうかを判断できないことです。
二、parseInt、parseFloat
parseInt
解析および解析parseFloat
中に不正な文字が検出された場合は、解析された値が返されます数值
。つまり、文字列が头部
である限り合法数值
、全体が値でなくても、値を解析できます。たとえば123abc
、解析されます123
。
const a = '123abc';
parseFloat(a); // 123
const b = 'a123abc';
parseFloat(b); // NaN
const c = '0123abc';
parseFloat(c); // 123
const d = 'a0123abc';
parseFloat(d); // NaN
三、isNaN、isFinite
NaN
、と書いてありますNot-a-Number
。2 つの NaN が等しいかどうかを直接比較することはできません。これは、それらが数値ではないことだけがわかっており、それらが何であるかが不確かであるため、等しいと比較することはできません。isNaN(value)
Number(value)
結果がNaN
返される場合はtrue
、そうでない場合は returnfalse
。isFinite(value)
、とNumber(value)
の結果が数值
等しくない場合はInfinity
return-Infinity
、true
それ以外の場合は returnfalse
。
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Number(''); // 0
Number('123'); // 123
Number(123); // 123
Number('abc'); // NaN
isNaN(true); // false
isNaN(false); // false
isNaN(null); // false
isNaN(undefined); // true
isNaN(''); // false
isNaN('123'); // false
isNaN(123); // false
isNaN('abc'); // true
isFinite(true); // true
isFinite(false); // true
isFinite(null); // true
isFinite(undefined); // false
isFinite(''); // true
isFinite('123'); // true
isFinite(123); // true
isFinite('abc'); // false
四、Number.isNaN、Number.isFinite
Number.isNaN(value)
value
返される場合はNaN
返されtrue
、そうでない場合は返されますfalse
。Number.isFinite(value)
value
数値と等しくないInfinity
場合は-Infinity
を返しtrue
、それ以外の場合は を返しますfalse
。- グローバル関数 と比較すると
isNaN()
、Number.isNaN()
パラメータをそれ自体で数値に変換することはなく、NaN
パラメータが の値を持つ数値である場合にのみ返されますtrue
。
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
Number.isNaN(true); // false
Number.isNaN(false); // false
Number.isNaN(null); // false
Number.isNaN(undefined); // false
Number.isNaN(''); // false
Number.isNaN('123'); // false
Number.isNaN(123); // false
Number.isNaN('abc'); // false
Number.isFinite(true); // false
Number.isFinite(false); // false
Number.isFinite(null); // false
Number.isFinite(undefined); // false
Number.isFinite(''); // false
Number.isFinite('123'); // false
Number.isFinite(123); // true
Number.isFinite('abc'); // false
Number.isNaN
に相当:
Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}
Number.isFinite
に相当:
if (Number.isFinite === undefined) Number.isFinite = function(value) {
return typeof value === 'number' && isFinite(value);
}
5、正規表現
const exp = /^[0-9]+.?[0-9]*/;
exp.test('123'); // true
exp.test('a123'); // false
exp.test(123); // true