2016-07-27 5 views
-4

나는이 질문을 몇 번 본 적이있다. 나는 또한 삼항 연산자를 제안하고 사용하는 것을 보았다.JavaScript의 단문 if 문

내 예제에서 Ternary 연산자를 사용하는 것이 가장 좋은 방법인지 궁금합니다.

if (dateSel.stock_qty <= 20) { 
    $(".stock_left").css("display", "block"); 
} else if (dateSel.stock_qty == 0) { 
    // do nothing 
} 

내가이 변경 : 문 내 경우

무엇

dateSel.stock_qty <= (20) ? "Y" : "N"; 

YN을 참조하십시오. 따옴표 안에 함수를 넣을 수 있습니까?

이 유형의 if 문에 대해서는이를 처리하는 가장 짧은 방법 인 Ternary가 있거나 더 좋은 방법이 있습니다.

+0

'dateSel.stock_qty'에 부작용이있는 사용자 정의 속성 게터가 있습니까? 만약 그렇지 않다면 (그리고 분명히해서는 안됩니다), 왜 처음에는 else if로 귀찮아합니까? –

+0

'else if'가 불가능합니다. 첫 번째'if'와 일치시킬 것입니다. – 4castle

+0

http://stackoverflow.com/documentation/javascript/221/conditions/2184/ternary-operators#t=201607271355273249966 – Brett

답변

4

삼급은 정규 if 조건과 달리 어쨌든 두 번째 부분을 필요로하기 때문에 거기에있는 것들을 단축하지 않습니다. 또한, 삼항은 실제로 이러한 목적을 위해 설계되지 않았습니다.

if(dateSel.stock_qty <= 20)$(".stock_left").css("display", "block"); 
0

경우 문이 유형이와

가서 그냥 다른 블록과 브래킷을 제거? 이 경우에는 else if 블록이 필요하지 않으므로 if 문 하나만 사용할 수 있습니다. 삼자가 여기 당신을 도우 려하지 않을 것입니다. : 뒤에 뭔가를 원할 것이 없기 때문입니다.

0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

  • 에서 삼항는 간단 (또는 당신이 말할 수있는 "청소기") 방식으로 IF 문을 작성하는 방법은 기본적으로. 어떤 실질적인 이점도 없습니다. 그러나 이것을 사용하려면 다음과 같이 표시해야합니다.

    dateSel.stock_qty < = (20)? $ (". stock_left") .css ("display", "block") : "0";

여기에 "다른 부분"을 포함 할 수 없다는 사실을 알고 있어야합니다. 세미콜론 다음의 순수한 "else":

편집 : 상황을 만족시키기 위해 세미콜론과 추가 번호가 변경되었습니다. 아래에서 설명하는 것처럼이 작업을 수행하는 것은 좋지 않습니다!

+0

LOL은 가장 오래된 링크입니다. 왼쪽 정렬 영어 버전 [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) – 4castle

+0

Zaid : 링크 된 문서를 읽어야합니다. 더 조심스럽게 –

+0

링크에 잘못된 영역이있는 것을 놓친 것입니다. –