JavaScript에서는 ? : (조건부) 연산자를 어떻게 사용합니까?
'이라고 하는 것은 무엇일까요??:
('3')
이것은 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 흔히 "삼원 연산자"라고 불리지만, 실제로는 삼원 연산자[3개의 피연산자를 받아들이는 연산자]일 뿐입니다.그러나 현재 JavaScript에 있는 것은 이것뿐입니다.
나는 주어진 대답에 몇 가지를 추가하고 싶다.
변수가 설정되어 있는 경우 표시, 그렇지 않은 경우...와 같은 상황에서 3진수를 만나거나 사용하려는 경우 3진수 없이 더 짧게 만들 수 있습니다.
대신:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
다음을 사용할 수 있습니다.
var welcomeMessage = 'Hello ' + (username || 'guest');
PHP의 3진 "PHP"의 3진수 "Javascripts"에 합니다.?:
또는 다음과 같은 경우도 있습니다.
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
변수를 평가하여 false 또는 unset이면 다음 항목으로 넘어갑니다.
이것은 '3진수' 또는 '조건부' 연산자라고 불립니다.
예
?: 연산자는 if...else 문의 바로 가기로 사용할 수 있습니다.일반적으로 if...else 문장이 어색할 수 있는 더 큰 표현의 일부로 사용됩니다.예를 들어 다음과 같습니다.
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
예제에서는 오후 6시 이후인 경우 "Good evening"을 포함하는 문자열을 만듭니다.if...else 문을 사용하는 등가 코드는 다음과 같습니다.
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
기본적으로 그것은 속기 조건문이다.
다음 항목도 참조해 주세요.
심볼만 있으면 구글을 검색하기가 조금 어렵습니다.) 사용하는 용어는 "JavaScript 조건부 연산자"입니다.
JavaScript에서 더 재미있는 기호가 발견되면 먼저 JavaScript 연산자: Mozilla Developer Center 연산자 목록을 찾아보십시오.한 가지 예외는 기호입니다.
질문에 답하기 위해 조건부 연산자는 simple if 문을 대체합니다.예를 들면 다음과 같습니다.
var insurancePremium = age > 21 ? 100 : 200;
대신:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
대부분의 정답은 맞지만 나는 조금 더 추가하고 싶다.3차 연산자는 right-associative입니다.즉, 다음과 같은 방법으로 접속할 수 있습니다.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; }
}
자세한 내용은 이쪽
z = (x == y ? 1 : 2);
와 동등하다
if (x == y)
z = 1;
else
z = 2;
물론 더 짧다는 것만 빼면요
삼진 연산자
일반적으로 Javascript에는 조건문이 있습니다.
예:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
그러나 두 개 이상의 행이 포함되어 변수에 할당할 수 없습니다.Javascript에는 이 Problem Ternary Operator에 대한 해결책이 있습니다.3진 연산자는 한 줄에 쓰고 변수에 할당할 수 있습니다.
예:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
이 3진 연산자는 C 프로그래밍 언어에서 유사합니다.
이봐, 친구 js는 참인지 거짓인지 평가해서 작동한다는 것만 기억해, 그렇지?
삼원 연산자를 예로 들어 보겠습니다.
questionAnswered ? "Awesome!" : "damn" ;
가 questionAnswered인지 합니다.true
★★★★★★★★★★★★★★★★★」false
.
true
)?
수 있습니다.
( 「 」 ):
하면 ', '아'가 나옵니다
이것이 친구에게 도움이 되기를 바랍니다:)
삼원 연산자라고 합니다.
tmp = (foo==1 ? true : false);
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";
삼원식은 JS, 특히 React에서 매우 유용합니다.여기 제시된 많은 우수하고 상세한 답변에 대한 간단한 답변이 있습니다.
condition ? expressionIfTrue : expressionIfFalse
expressionIfTrue
OG(참일 경우)
expressionIfFalse
뭇매를 맞다
예:
var x = 1;
(x == 1) ? y=x : y=z;
x 값을 확인했습니다. 첫 번째 y=(값)가 true이면 반환되고, 두 번째 y=(값)가 false이면 반환되었습니다.
if statement
을 사용하다
그렇게
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
은 ""에 .( )
true 뒤에 합니다.?
false 뒤에 합니다.:
조건부(삼진수) 연산자는 3개의 오퍼랜드를 사용하는 유일한 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));
이것은 아마도 이것을 하는 가장 우아한 방법은 아닐 것이다.그러나 삼원 연산자에 익숙하지 않은 사람에게는 이 방법이 유용할 수 있다.제 개인적인 취향은 상황 차단 대신 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 및 길이와 함께 사용할 수 있습니다.
값이 있고 이름과 성을 얻으려고 하는 보증 이름 텍스트 상자가 있다고 가정합니다.이 텍스트 상자는 늘일 수 있습니다.보다 더 희박하다
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>
그 이름이에요'ternary operator
상세한 것에 대하여는, 이것에 대해서 또 다른 질문을 드리겠습니다.
javascript에서 하나의 조건체크 인스턴스 함수가 있는 경우.3진 연산자를 사용하기 쉽습니다.구현에 필요한 회선은 1개뿐입니다.예:
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의 경우
3진 연산자는 다른 조건일 경우 쓰는 단순한 방법입니다.ReactJS에서 널리 사용되고 있습니다.
예:
const x = 'foo';
// Instead of if else use this
x === 'foo' ? alert('True') : alert('False');
// Output
// alert box will prompt 'True'
(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>"
언급URL : https://stackoverflow.com/questions/6259982/how-do-you-use-the-conditional-operator-in-javascript
'programing' 카테고리의 다른 글
ipython 노트북에서 셀 실행 시간을 측정하는 간단한 방법 (0) | 2022.09.26 |
---|---|
postgresql-server-dev-X를 설치해야 합니다.서버측 확장을 구축하기 위한 Y 또는 클라이언트측 애플리케이션을 구축하기 위한 libpq-dev (0) | 2022.09.26 |
MySQL을 사용하여 타임스탬프 가져오기 (0) | 2022.09.26 |
프로그램적으로 16진수 색상(또는 rgb 및 혼합 색상)을 밝게 또는 어둡게 합니다. (0) | 2022.09.26 |
공장 패턴과 전략 패턴의 차이점은 무엇입니까? (0) | 2022.09.26 |