if else
없이 속기를 쓸 수 있습니까 else
?
var x=1;
x==2 ? dosomething() : doNothingButContinueCode();
나는 null
다른 작품을 넣는 것을 보았습니다 (그러나 그것이 왜 좋은 아이디어인지는 알 수 없습니다).
편집 : 당신 중 일부는 내가 이것을 시도하는 것을 귀찮게 한 것처럼 보입니다. 순전히 호기심에서 벗어났습니다. 나는 JavaScript를 뒤섞는 것을 좋아한다.
답변
이것은 또한 옵션입니다.
x==2 && dosomething();
dosomething()
x==2
true로 평가 된 경우에만 호출됩니다 . 이것을 단락 이라고 합니다.
이와 같은 경우에는 일반적으로 사용되지 않으며 실제로 이와 같은 코드를 작성해서는 안됩니다. 이 간단한 접근 방식을 권장합니다.
if(x==2) dosomething();
항상 읽을 수있는 코드를 작성해야합니다. 파일 크기가 걱정된다면 많은 JS 압축기 중 하나를 사용하여 축소 된 버전을 만드십시오. (예 : Google의 폐쇄 컴파일러 )
답변
당신이 가진 것은 삼항 연산자를 상당히 비정상적으로 사용하는 것입니다 . 일반적으로 다음과 같은 다른 작업 내에서 명령문이 아닌 표현식으로 사용됩니다.
var y = (x == 2 ? "yes" : "no");
따라서 가독성을 높이기 위해 (여러분이하고있는 일이 드물기 때문에) 원하지 않는 “다른 것”을 피하기 때문에 다음과 같이 제안합니다.
if (x==2) doSomething();
답변
다른 옵션 :
x === 2 ? doSomething() : void 0;
답변
다른 것을하고 있지 않다면 왜하지 마십시오.
if (x==2) doSomething();
답변
null
삼항식의 가지 중 하나에 사용하는 것이 좋습니다. 그리고 삼항식은 자바 스크립트의 문장으로 좋습니다.
그러나 스타일 문제로 프로 시저를 호출하는 것을 염두에두고 if..else를 사용하여 작성하는 것이 더 명확합니다.
if (x==2) doSomething;
else doSomethingElse
또는 귀하의 경우
if (x==2) doSomething;
답변
이 아주 오래된 실에 작은 추가 ..
your’e는 내부 식 평가하는 경우 for
/의 while
삼항 연산자 루프를하고 싶지 continue
또는 break
결과로 – 당신은 둘 때문에 문제가있는거야 continue
&가 break
없는 표현 들이있는 거, 문 값없이.
이것은 생산할 것이다 Uncaught SyntaxError: Unexpected token continue
for (const item of myArray) {
item.value ? break : continue;
}
실제로 명령문을 반환하는 단일 라이너를 원한다면 이것을 대신 사용할 수 있습니다.
for (const item of myArray) {
if (item.value) break; else continue;
}
- PS-이 코드는 눈썹을 약간 올릴 수 있습니다. 그냥 .. 🙂
답변
기술적으로 null 또는 0 또는 임의의 값 이 있으면 반환 값을 사용하지 않으므로 작동합니다. 그러나 왜 구문 대신이 구문을 사용하고 if
있습니까? 이런 방식으로 코드를 작성할 때 수행하려는 작업이 명확하지 않습니다. 사람들과 노업을 혼동 할 수 있습니다 (귀하의 경우 널임).