[javascript] 당신은 어떻게 사용합니까? : JavaScript의 (조건부) 연산자?
누군가 ?:
(조건부, “삼항”) 연산자 란 무엇이며 사용법 은 간단한 단어로 설명해 주 시겠습니까?
답변
이것은 if-else 문의 한 줄 축약입니다. 이를 조건부 연산자라고합니다. 1
조건부 연산자로 단축 할 수있는 코드의 예는 다음과 같습니다.
var userType;
if (userIsYoungerThan18) {
userType = "Minor";
} else {
userType = "Adult";
}
if (userIsYoungerThan21) {
serveDrink("Grape Juice");
} else {
serveDrink("Wine");
}
다음과 ?:
같이 단축 할 수 있습니다 :
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
이 비록 모든 표현처럼, 조건 연산자는 또한, 부작용을 가진 독립 문으로 사용할 수있는 특이한 축소를 외부가 :
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
그들은 연결될 수도 있습니다 :
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
그러나 조심하십시오. 그렇지 않으면 다음과 같이 복잡한 코드가 생깁니다.
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 종종 “삼항 연산자”라고하지만 실제로 는 삼항 연산자 (세 개의 피연산자를 허용하는 연산자) 일뿐 입니다. 그래도 현재 유일하게 JavaScript가 있습니다.
답변
주어진 답변에 일부 를 추가 하고 싶습니다 .
‘변수가 설정된 경우 변수 표시 …’와 같은 상황에서 삼항을 만나거나 사용하려는 경우 삼항없이 더 짧게 만들 수 있습니다 .
대신에:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
당신이 사용할 수있는:
var welcomeMessage = 'Hello ' + (username || 'guest');
이것은 PHP의 속기 삼항 연산자와 동등한 Javascript입니다. ?:
또는:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
변수를 평가하고, 거짓이거나 설정되지 않은 경우 다음으로 넘어갑니다.
답변
이를 ‘삼항’또는 ‘조건부’연산자라고합니다.
예
? : 연산자는 if … else 문의 바로 가기로 사용할 수 있습니다. 일반적으로 if … else 문이 어색한 큰 식의 일부로 사용됩니다. 예를 들면 다음과 같습니다.
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
이 예에서는 “Good night”을 포함하는 문자열을 만듭니다. 오후 6시 이후 인 경우 if … else 문을 사용하는 동등한 코드는 다음과 같습니다.
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
에서 MSDN JS 문서 .
기본적으로 이것은 속기 조건문입니다.
참조 :
답변
당신이 가진 모든 것이 기호 일 때 구글에 조금 어렵습니다;) 사용하는 용어는 “자바 스크립트 조건부 연산자”입니다.
Javascript에 더 재미있는 기호가 표시되면 먼저 Javascript 연산자 ( MDC의 연산자 목록)를 찾아보십시오 . 발생할 가능성이있는 예외는 $
심볼 입니다.
질문에 대답하기 위해 조건부 연산자 는 간단한 if 문을 대체합니다. 예가 가장 좋습니다 :
var insurancePremium = age > 21 ? 100 : 200;
대신에:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
답변
z = (x == y ? 1 : 2);
에 해당
if (x == y)
z = 1;
else
z = 2;
물론 더 짧습니다.
답변
대부분의 답변은 정확하지만 조금 더 추가하고 싶습니다. 삼원 오퍼레이터 가 될 수 오른쪽 연관 인 체인 의 다음 방법 if … else-if … else-if … else
:
function example() {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
다음과 같습니다.
function example() {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
자세한 내용은 여기
답변
삼항 연산자라고합니다
tmp = (foo==1 ? true : false);