이 글에서는 주로 JavaScript에서 정수형을 판단하는 가장 간단한 구현 방법을 소개하고, 마지막으로 도움이 필요한 친구들이 참고할 수 있는 가장 짧고 간결한 구현 방법을 요약합니다.
자바스크립트가 typeof 연산자를 제공한다는 것을 알고 있으므로 가장 쉽게 생각할 수 있는 것은 typeof를 사용하여 숫자 유형인지 확인하는 것입니다.
function isNumber(obj) { return typeof obj === 'number' }
이 함수는 정수 및 부동 소수점 숫자에서는 문제가 없지만 NaN 값에 대해서도 true를 반환하므로 사람들은 결국 NaN을 사용하여 산술 연산을 수행하지 않을 것입니다. 판단할 숫자입니다.
그런 다음 개선하고 Object.prototype.toString을 사용해 보세요.
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]' }
판단 유형과 마찬가지로 NaN에 대해서도 true를 반환하므로 코드 양이 여전히 많아 원하는 결과가 아닙니다. toString.call 메소드는 배열(Array)을 판단하는 데 적합하지만 숫자는 그 기능을 벗어납니다.
추가 개선 사항으로 isNaN 함수를 사용하여 NaN 값을 처리합니다.
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) }
이번에 전달된 값이 숫자가 아닌 값(NaN 또는 NaN으로 변환 가능한 값)이면 false가 반환됩니다
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } isNumber(1) // true isNumber(1.2) // true isNumber(NaN) // false isNumber( parseInt('a') ) // false
그럼, isNumber는 좋지만 여전히 isFinite를 사용하여
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }
을 판단하는 동일한 방법이 있습니다. 지금까지 가장 짧은 코드의 수치 판단은 이 기사에서 언급한 세 번째입니다. isNaN 함수입니다. 다음은 세계에서 가장 짧은 수 판정 코드
function isNumber(obj) { return obj === +obj }
를 그랜드 런칭한 것입니다. 정수 및 부동 소수점 수에 대해서는 true를 반환하고, NaN 또는 NaN으로 변환 가능한 값에 대해서는 false를 반환합니다.
이해가 안 가시나요? 구~~(╯﹏╰)
정원 친구들은 이것이 세상에서 가장 짧은 판정 숫자 코드는 아니며 매개변수 obj를 한 문자로 변경할 수 있다고 말했습니다. (ㅇㅇㅇ) 당신 말이 맞아요.
유추하자면 JS 동적 언어 기능(연산자 작업 중 자동 내부 유형 변환)을 사용한 유사한 최단 판단이 있습니다.
// 判断字符串 function isString(obj) { return obj === obj+'' } // 判断布尔类型 function isBoolean(obj) { return obj === !!obj }
위 내용은 이 장의 전체 내용입니다. 더 많은 관련 튜토리얼을 보려면 JavaScript 비디오 튜토리얼을 방문하세요.