2017-03-15 20 views
-3
if(typeof(variable) === "boolean"){ 
    // variable is a boolean 
} 

아래의 두 가지 코드 샘플 중 위의 코드 샘플 중 어느 하나가 위의 것과 동일합니까?Javascript에서 typeof 메소드는 어떻게 작동합니까?

샘플 1 개

if(variable === true || variable === false){ 
    // variable is a boolean 
} 

샘플 2

if(variable == true || variable == false){ 
    // variable is a boolean 
} 
+1

'1 == true'가 아니기 때문에 분명히 두 번째가 아니지만, 부울이 아닙니다. – Eric

+1

이것이 질문 인 경우, 콘솔에서'typeof (1) =='boolean''을 시도하지 말고 인간? – Eric

답변

2

첫번째 경우는 동일하다. ===유형 변환을 수행하지 않는다는 점을 제외하고는 ==과 동일한 작업을 수행합니다. 자세한 내용은 this answer을 참조하십시오. variable이 부울 변수 인 경우에만

그래서,

if (variable === true || variable === false) { 
    ... 
} 

true로 평가합니다.


typeof의 내부 동작에 관해서는, 당신은 this을 읽을 수 있으며, 물론, 그것은 manual입니다. typeof===, == 또는 &과 매우 흡사합니다. 그것이 어떻게 구현되는지와 변수 타입을 어떻게 알 수 있는지에 대해서는 코드를 검사해야한다.

자바 스크립트 엔진 소스 코드를 본 적이 없으므로 어디서 볼 수 있는지 잘 모릅니다.