JavaScript에서 정수 유형을 결정하는 가장 간단한 구현 방법

PHPz
풀어 주다: 2018-09-30 13:38:17
원래의
1483명이 탐색했습니다.

이 글에서는 주로 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 비디오 튜토리얼을 방문하세요.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿