2017-10-31 4 views
1

저는 다른 것들 사이에서 가치 유형을 주장하는 기능을 가지고 있습니다. 문제는 숫자의 유형을 확인할 때 예상 결과를 제공하지 않는다는 것입니다. 예를 들어, 인위적인 버전의 함수는 다음과 같이 보일 수 있습니다.유형 번호가 거짓입니다.

이제 혼란의 일부는 if 내가 val의 유형을 기록하면 number을 인쇄하지만 "number"의 문자열과 비교할 때 비교는 false입니다. bool과 문자열이 완벽하게 작동하면 혼동이 발생합니다. 함수의

사용 예제 :

function CheckType(val, expectedType) { 
 
    return (typeof val == expectedType); 
 
} 
 

 

 
console.log(CheckType(10, "number")); // false 
 
console.log(CheckType(true, "boolean")); // true 
 
console.log(CheckType("Hello World", "string")); // true;

편집 : 나는 ===으로 시도하고 여전히 적어도 당신이 결과를 반환해야

+1

'Assert' 무엇 ? 어쩌면 당신은 그것 대신'==='를 사용해야합니까? – sjahan

+2

나는이 세 가지 모두에 대해 '사실'을 얻고 있습니다. 실제 코드를 게시 할 수 있습니까? – Bergi

+1

나를 위해 일한다. 아마 제공하지 않은 코드의 일부에서 부작용이있을 수 있습니다. – Joel

답변

0

를 작동하지 않았다 확인 중.

function checkType(val, expectedType){ 
 
    return typeof val === expectedType; 
 
} 
 

 
console.log(checkType(10, "number")); 
 
console.log(checkType(true, "boolean")); 
 
console.log(checkType("Hello World", "string"));

+1

여전히 '거짓'을주지 않을 것입니다. – Bergi

+0

@Bergi, 우리는 아직도'Assert'가하고있는 것을 모른다. 뭔가를 반환하지 않고'undefined '를 반환해야합니다. –

+0

OP는 "* 비교가 false *", 즉'어설 션'을 수신하는'어설 션'이라고 진술했다. 반환 값에 문제가있는 것처럼 보일 수는 없지만 실제로는 알 수 없습니다. – Bergi