programing

JavaScript에서는 ? : (조건부) 연산자를 어떻게 사용합니까?

newsource 2022. 9. 26. 23:03

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.";

MSDN JS 매뉴얼 참조.

기본적으로 그것은 속기 조건문이다.

다음 항목도 참조해 주세요.

심볼만 있으면 구글을 검색하기가 조금 어렵습니다.) 사용하는 용어는 "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

expressionIfTrueOG(참일 경우)
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));

자세한 내용은 MDN 문서 링크를 참조하십시오.

이것은 아마도 이것을 하는 가장 우아한 방법은 아닐 것이다.그러나 삼원 연산자에 익숙하지 않은 사람에게는 이 방법이 유용할 수 있다.제 개인적인 취향은 상황 차단 대신 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상세한 것에 대하여는, 이것에 대해서 또 다른 질문을 드리겠습니다.

'else' 없이 IF else 문을 작성하는 방법

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