2014-06-20 17 views
7

użyłem typeof foo !== 'undefined' przetestować opcjonalne parametry w funkcji JavaScript, ale jeśli chcę wartość ta będzie true lub false za każdym razem, co jest najprostszym i najszybszym i najbardziej dokładny droga? Wydaje się, że to może być prostsze:Ustaw domyślną wartość logiczną parametru w funkcji javascript

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 

Odpowiedz

15

Można pominąć trójskładnikowych i ocenić „nie nie x”, na przykład !!x.

Jeśli x jest niezdefiniowane, !x jest prawdziwe, więc !!x ponownie staje się fałszywe. Jeśli x jest prawdziwe, to !x ma wartość false, więc !!x ma wartość true.

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

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

Ahhh doskonały, dokładnie to, czego szukałem, dzięki. – jrode

+0

Ktoś proszę chronić tę odpowiedź :) –

Powiązane problemy