2014-10-21 3 views
0

변수 mastertrue 또는 false 일 수 있으며 다른 어떤 것도 사용할 수 없습니다.기본 조건에서 부울 검사

다른 변수 overrideundefined, true 또는 false 일 수 있습니다.

따라서 어떤 변수를 사용할 것인지 결정하는 방법은 이 undefined이 아닌 경우 master을 사용하십시오. 더 나은 방법이 또한

if ((master !== undefined && master) || override) then 
    ... 

을하지만이 올 바르고 :

어쩌면 우리가 할 수 있을까?

+0

가능한 답변 : http://stackoverflow.com/questions/3390396/how-to-check-for-undefined-in-javascript –

답변

1

을 위해 일해야 당신은 말했다 :

  • master 만 할 수 있습니다 true 또는 false
  • overridetrue, false 또는 undefined
  • 일 수 있습니다. override 경우
  • 하지 undefined 다음 그래서 올바른 코드가 될 것입니다 그것을

을 사용할 수 있습니다 :

NIET 말한 유사
if (typeof override !== "undefined" ? override : master) { 
    // use override 
} else { 
    // use master 
} 
1
if(typeof override !== "undefined" ? override : master) 

그것은 삼항 연산자의 자유로운 사용, 그러나 당신이 원하는 것을 정확하게 수행합니다 override이 정의

경우, 그것을 사용할 수 있습니다. 그렇지 않으면 master을 사용하십시오. 선택한 하나가 true 경우, ...이 같은

0

뭔가 당신

if ((override === undefined && master) || (override !== undefined && override)) { 
    ... 
} 
0

,하지만 난 그것을 변수에 저장합니다 명확하게 생각합니다.

var _set = (typeof override !== 'undefined' ? override : master); 

if (_set) { 
    ... 
} 
0

이렇게하면 더 명확하고 읽기 쉽습니다.

var usethis; 
if (typeof override != 'undefined') { 
    usethis = override; 
} else { 
    usethis = master; 
} 

if (usethis) { 
    // Enable feature X 
} 

당신에게 override 변수가 정의 된 경우 먼저 확인 : 그래서 우리는 마스터 후퇴, 그렇지 않으면, 그 값을 사용합니다합니다. 그런 다음 실제로이 값을 사용하여 기능을 활성화합니다 (필자의 유스 케이스라고 생각합니다).

당신이 원하는 경우에, 당신은이보다 컴팩트 한 방법으로 그것을 쓸 수 있습니다 : 그렇지 않으면 부울 값으로 override 변수를 캐스팅합니다 강압을 입력

var usethis = typeof override != 'undefined' ? override : master; 

if (usethis) { 
    // Enable feature X 
} 

당신 typeof 연산자를 사용하는이 있고, 당신이 그리워 false 값입니다.

관련 문제