누군가 ?:
(조건부, "삼항") 연산자 란 무엇이며 사용법 은 간단한 단어로 설명해 주 시겠습니까?
누군가 ?:
(조건부, "삼항") 연산자 란 무엇이며 사용법 은 간단한 단어로 설명해 주 시겠습니까?
답변:
이것은 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가 있습니다.
ternary
의 유형 입니다 (즉, 3 개의 부분이 있습니다). 의 이름을 특정의 삼항 연산자 는 IS conditional operator
. JS에는 삼항 연산자가 하나만 있으므로 용어가 잘못 사용됩니다.
||
은 왼쪽 값이 사실이면 단락되기 때문에 연산자를 사용하는 것입니다.
주어진 답변에 일부 를 추가 하고 싶습니다 .
'변수가 설정된 경우 변수 표시 ...'와 같은 상황에서 삼항을 만나거나 사용하려는 경우 삼항없이 더 짧게 만들 수 있습니다 .
대신에:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
당신이 사용할 수있는:
var welcomeMessage = 'Hello ' + (username || 'guest');
이것은 PHP의 속기 삼항 연산자와 동등한 Javascript입니다. ?:
또는:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
변수를 평가하고, 거짓이거나 설정되지 않은 경우 다음으로 넘어갑니다.
'Hello ' + (username ? username : 'guest')
, Hello +
무시하고 단지 삼항 작업의 결과가 반환되는 경우. 아무도 이유를 설명 할 수 있습니까?
'Hello ' + username
, 항상 true
이 0보다 길이 이상으로 표기되어있는 문자열이기 때문에,
이를 '삼항'또는 '조건부'연산자라고합니다.
예
? : 연산자는 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;
}
var olderThan20 = age > 20;
대신 에 사용하고 싶습니다 .
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);
삼항 연산자
일반적으로 Javascript에는 조건문이 있습니다.
예:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
그러나 둘 이상의 행을 포함하며 변수에 지정할 수 없습니다. 자바 스크립트에는이 문제에 대한 해결책이 있습니다. Ternary Operator 있습니다. 삼항 연산자는 한 줄로 쓰고 변수에 할당 할 수 있습니다.
예:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
이 Ternary 연산자는 C 프로그래밍 언어와 유사합니다.
x = 9
y = 8
단항
++x
--x
이진
z = x + y
세 개 한 벌
2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";
이라고합니다 ternary operator
. 더 많은 정보를 위해, 이것에 관해 내가 대답 한 또 다른 질문이 있습니다.
conditional operator
. JS에는 삼항 연산자가 하나만 있으므로 용어가 잘못 사용됩니다.
이것은 아마도 이것을하는 가장 우아한 방법은 아닙니다. 그러나 삼항 연산자에 익숙하지 않은 사람에게는 이것이 유용 할 수 있습니다. 개인적으로 선호하는 것은 조건 블록 대신 1 라이너 폴백을 수행하는 것입니다.
// var firstName = 'John'; // Undefined
var lastName = 'Doe';
// if lastName or firstName is undefined, false, null or empty => fallback to empty string
lastName = lastName || '';
firstName = firstName || '';
var displayName = '';
// if lastName (or firstName) is undefined, false, null or empty
// displayName equals 'John' OR 'Doe'
// if lastName and firstName are not empty
// a space is inserted between the names
displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;
// if display name is undefined, false, null or empty => fallback to 'Unnamed'
displayName = displayName || 'Unnamed';
console.log(displayName);
아래 예제와 같이 Jquery와 length를 함께 사용할 수 있습니다.
값이 있고 이름과 성을 얻으려는 GuarantorName 텍스트 상자가 있다고 가정합니다. null 일 수 있습니다. 라 타르보다
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
최소 코드로 Jquery와 함께 아래 코드를 사용할 수 있습니다
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = gnamesplit.length > 0 ? gnamesplit[0] : "";
var gFirstName = gnamesplit.length > 1 ? gnamesplit[1] : "";
$("#txtLastName").val(gLastName);
$("#txtFirstName").val(gFirstName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
Guarantor Name: <input type="text" id="txtGuarantorName" value="ASP.NET Core" /><br/>
<br/>
<br/>
First Name: <input type="text" id="txtLastName" value="ASP.NET Core" />
Last Name: <input type="text" id="txtFirstName" value="ASP.NET Core" />
</div>
삼항식은 JS, 특히 React에서 매우 유용합니다. 다음은 제공된 많은 훌륭하고 자세한 답변에 대한 간단한 답변입니다.
condition ? expressionIfTrue : expressionIfFalse
expressionIfTrue
OG if 문 렌더링이 참 이라고 생각하십시오 .
~에 대해 생각하다expressionIfFalse
else 서술문으로 하십시오.
예:
var x = 1;
(x == 1) ? y=x : y=z;
이것은 x의 값을 확인했는데, 첫 번째 y = (value)는 true이면 반환되고, 두 번째는 콜론 다음에 반환됩니다. y = (value)는 false 인 경우 반환되었습니다.
조건부 (삼항) 연산자는 세 개의 피연산자를 사용하는 유일한 JavaScript 연산자입니다. 이 연산자는 if 문의 바로 가기로 자주 사용됩니다.
condition ? expr1 : expr2
조건이 true이면 연산자는 expr1의 값을 리턴합니다. 그렇지 않으면 expr2의 값을 리턴합니다.
function fact(n) {
if (n > 1) {
return n * fact(n-1);
} else {
return 1;
}
// we can replace the above code in a single line of code as below
//return (n != 1) ? n * fact(n - 1) : 1;
}
console.log(fact(5));
더 자세한 내용은 MDN 문서 링크를 참조 하십시오
javascript에 하나의 조건 검사 인스턴스 함수가있는 경우 . 삼항 연산자 를 사용하는 것이 쉽습니다 . 구현 하려면 한 줄만 필요합니다 . 전의:
private module : string ='';
private page:boolean = false;
async mounted(){
if(this.module=== 'Main')
{
this.page = true;}
else{
this.page = false;
}
}
하나의 조건으로 이와 같은 기능을 다음과 같이 작성할 수 있습니다.
this.page = this.module=== 'Main' ?true:false;
질환 ? True 인 경우 : False 인 경우
(sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";
sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"
sunday ?
.IT가 있어야한다sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"