> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 정수 유형을 결정하는 가장 간단한 구현 방법

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

高洛峰
풀어 주다: 2016-11-02 10:23:57
원래의
1110명이 탐색했습니다.

JavaScript가 typeof 연산자를 제공한다는 것을 알고 있으므로 가장 쉽게 생각할 수 있는 것은 typeof를 사용하여 숫자 유형인지 확인하는 것입니다.

다음과 같이 코드를 복사합니다.

function isNumber(obj) {
    return typeof obj === 'number'
}
로그인 후 복사

이 함수는 정수 및 부동 소수점 숫자에는 문제가 없지만 NaN 값에 대해서도 true를 반환합니다. 불쾌합니다. 결국 isNumber를 사용하여 판단한 후에 NaN을 사용하여 산술 연산을 수행하는 사람은 아무도 없습니다.

그런 다음 개선하고 Object.prototype.toString을 사용해 보세요.

다음과 같이 코드를 복사하세요.

function isNumber(obj) {  
  return Object.prototype.toString.call(obj) === '[object Number]'
  }
로그인 후 복사

이번에는 입력이 숫자가 아닌 경우(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
}
로그인 후 복사


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