方法: 1. 剰余演算子を使用して決定します; 2. "Math.round"、"Math.ceil"、および "Math.floor" メソッドを使用して決定します; 3. parseInt 関数を使用して判定する ; 4.ビット演算で判定する; 5.「Number.isInteger」を使って判定する。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
方法 1. 剰余演算子を使用して、任意の整数が 1 で割り切れる、つまり剰余が 0 であることを決定します。このルールを使用して、整数かどうかを判断します。
function isInteger(obj) { return obj%1 === 0 } isInteger(3) // true isInteger(3.3) // false isInteger('') // true isInteger('3') // true isInteger(true) // true isInteger([]) // true
function isInteger(obj) { return typeof obj === 'number' && obj%1 === 0 } isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false
方法 2、Math.round、Math.ceil、および Math.floor を使用して、
整数が四捨五入後もそれ自体と等しいかどうかを判断します。この機能を使用して、整数であるかどうかを判断します。Math.floor の例は次のとおりです。 function isInteger(obj) {
return Math.floor(obj) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
]
function isInteger(obj) { return parseInt(obj, 10) === obj } isInteger(3) // true isInteger(3.3) // false isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false、 //很不错,但也有一个缺点 isInteger(1000000000000000000000) // false
理由は、parseInt が整数を解析する前に最初のパラメータを強制的に文字列に解析するためです。数値を整数に変換するこの方法は、良い選択ではありません。
方法 4. ビット操作で決定するfunction isInteger(obj) { return (obj | 0) === obj } isInteger(3) // true isInteger(3.3) // false isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false //这个函数很不错,效率还很高。但有个缺陷,上文提到过,位运算只能处理32位以内的数字,对于超过32位的无能为力 isInteger(Math.pow(2, 32)) // 32位以上的数字返回false了
方法 5. ES6 は Number.isInteger を提供します
Number.isInteger(3) // true Number.isInteger(3.1) // false Number.isInteger('') // false Number.isInteger('3') // false Number.isInteger(true) // false Number.isInteger([]) // false
詳細 プログラミング用関連知識については、プログラミング ビデオ をご覧ください。 !
以上がJavaScriptで整数かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。