2014-06-20 2 views
7

typeof foo !== 'undefined'을 사용하여 자바 스크립트 함수의 선택적 매개 변수를 테스트했지만이 값을 매번 true 또는 false이되도록하려면 가장 간단하거나 빠르거나 가장 철저한 것은 무엇입니까? 방법?자바 스크립트 함수의 부울 매개 변수에 대한 기본값 설정

function logBool(x) { 
    x = typeof x !== 'undefined' && x ? true : false; 
    console.log(x); 
} 

var a, b = false, c = true; 
logBool(a); // false 
logBool(b); // false 
logBool(c); // true 

답변

15

세 가지를 건너 뛰고 "not not x"(예 : "not not x")를 평가할 수 있습니다. !!x.

x가 정의되지 않은 경우 !x이 참이므로 !!x은 다시 거짓이됩니다. x가 true이면 !x이 거짓이므로 !!x이 참입니다.

function logBool(x) { 
    x = !!x; 
    console.log(x); 
} 

var a, b = false, c = true; 
logBool(a); // false 
logBool(b); // false 
logBool(c); // true 
+0

아, 완벽한 찾고 있습니다. 감사합니다. – jrode

+0

누군가이 답변을 보호하십시오 :) –

관련 문제