Programing

자바 스크립트에서 유형 검사

crosscheck 2020. 11. 11. 08:01
반응형

자바 스크립트에서 유형 검사


변수가 현재 정수 유형인지 어떻게 확인할 수 있습니까? 나는 이것에 대한 일종의 리소스를 찾았고 === 연산자가 중요하다고 생각하지만 변수가 정수 (또는 그 문제에 대한 배열)인지 확인하는 방법을 모르겠습니다.


변수는 JavaScript에서 정수 유형이 될 수 없습니다. 다른 유형의 숫자를 구별하지 않습니다.

변수에 숫자가 포함되어 있는지, 그 숫자가 정수인지 테스트 할 수 있습니다.

(typeof foo === "number") && Math.floor(foo) === foo

변수가 정수를 포함하는 문자열 일 수 있고 그 경우인지 확인하려는 경우 :

foo == parseInt(foo, 10)

요즘 ECMAScript 6 (ECMA-262)는 "집안에"있습니다. Number.isInteger(x)x 유형과 관련하여 질문 할 질문을하는 데 사용 합니다.

js> var x = 3
js> Number.isInteger(x)
true
js> var y = 3.1
js> Number.isInteger(y)
false

모듈로 % 1이 0이면 숫자는 정수입니다.

function isInt(n){
    return (typeof n== 'number' && n%1== 0);
}

이것은 자바 스크립트가 + -10에서 15까지 얻는 것만큼이나 좋습니다.

isInt(Math.pow(2,50)+.1)를 반환합니다 true.Math.pow(2,50)+.1 == Math.pow(2,50)


나는 당신이 정수에 관심이 있다는 것을 알고 있으므로 다시 대답하지는 않을 것이지만 부동 소수점 숫자를 확인하고 싶다면 이것을 할 수 있습니다.

function isFloat( x )
{
    return ( typeof x === "number" && Math.abs( x % 1 ) > 0);
}

참고 : 이것은로 끝나는 숫자 .0(또는 논리적으로 동등한 숫자 0)를 INTEGER로 취급 할 수 있습니다. 이 경우 부동 소수점 값을 감지하려면 실제로 부동 소수점 정밀도 오류가 발생해야합니다.

전의.

alert(isFloat(5.2));   //returns true
alert(isFloat(5));     //returns false
alert(isFloat(5.0));   //return could be either true or false

YourJS 와 같은 상당수의 유틸리티 라이브러리 는 무언가가 배열인지 또는 무언가가 정수인지 또는 많은 다른 유형인지를 결정하는 기능을 제공합니다. YourJS을 정의 isInt이 값은 1로 나누어이면 숫자이고, 만약 확인하여 :

function isInt(x) {
  return typeOf(x, 'Number') && x % 1 == 0;
}

위의 스 니펫은 이 YourJS 스 니펫에서 가져 으므로 typeOf라이브러리에 의해 정의 되었기 때문에 작동 합니다. 주로 typeOf(), isInt()isArray()다음 같은 유형 검사 기능 만있는 YourJS의 최소 버전을 다운로드 할 수 있습니다 . http://yourjs.com/snippets/build/34,2


Runtyper=== (및 기타 작업) 에서 피연산자의 유형 검사를 수행하는 도구를 살펴볼 수도 있습니다 .
당신이 엄격한 비교가있을 경우 예를 들어, x === yx = 123, y = "123"자동 확인합니다 typeof x, typeof y및 콘솔에 경고 표시 :

다양한 유형의 엄격한 비교 : 123 (숫자) === "123"(문자열)


이 코드를 시도하십시오.

 alert(typeof(1) == "number");

참고 URL : https://stackoverflow.com/questions/4514602/type-checking-in-javascript

반응형