programing

JavaScript 물음표 및 콜론

yoursource 2022. 9. 16. 21:14
반응형

JavaScript 물음표 및 콜론

나는 다음과 같은 말을 우연히 발견했다

hsb.s = max != 0 ? 255 * delta / max : 0;

의 기능?그리고.:이 문맥에서 무엇을 의미합니까?

이것은 조건 연산자(3진 연산자)라고 불립니다.

그 형식은 다음과 같습니다.condition?value-if-true:value-if-false
생각해 보세요?'그때'로:"disclosed"로 표시됩니다.

코드는 다음과 같습니다.

if (max != 0)
  hsb.s = 255 * delta / max;
else
  hsb.s = 0;

알기 쉽게 하기 위해 괄호로 둘러싸인 것은

hsb.s = (max != 0) ? (255 * delta / max) : 0;

반환 또는 반환을 의미합니다.

  • 255*delta/maxif max != 0
  • 0max == 0인 경우

이것은, 다음과 같이 괄호로 나타내면, 조금 더 명확할 가능성이 있습니다.

hsb.s = (max != 0) ? (255 * delta / max) : 0;

첫 번째 괄호 안에 있는 부분을 평가하는 것입니다.결과가 참일 경우 ? 이후와 : 이전 부분이 반환됩니다.false일 경우 : 뒤에 이어지는 내용이 반환됩니다.

hsb.s = max != 0 ? 255 * delta / max : 0;

?는 3진 연산자입니다.이 기능은if와 함께:

!=동일하지 않음을 의미합니다.

그래서 이 줄의 긴 형태는

if (max != 0) { //if max is not zero
  hsb.s = 255 * delta / max;
} else {
  hsb.s = 0;
}

?: 의 단기 조건입니다.else {}그리고.if(){}문제.따라서 코드를 다음과 같이 바꿀 수 있습니다.

if(max != 0){
       hsb.s = 225 * delta / max
}
else {
       hsb.s = 0
}

MDN - 조건부(삼진수) 연산자

? :이게 삼원 연산자 아닌가요?

var x= expression ? true:false

당신이 언급하는 것은 삼원 연산자라고 불리며, 그것은 본질적으로 기본이다.if3진 연산 내의 코드 블록이 유효한 경우 동작을 실행하도록 기술할 수 있는 조건 체크. 그렇지 않은 경우 폴백으로 기본 설정됩니다.

3진 연산은 다음 구문으로 기술됩니다.

condition ? exprIfTrue : exprIfFalse
  • condition값이 조건으로 사용되는 식입니다.
  • exprIfTrue조건이 truthy 값(true와 같거나 true로 변환할 수 있는 값)으로 평가되는 식입니다.
  • exprIfFalse조건이 거짓인 경우(즉, false로 변환할 수 있는 값이 있는 경우) 실행되는 식입니다.

에서 문자열을 반환하는 다음 함수를 사용합니다.Yes함수에 제공된 번호가 짝수이면 반환한다.No.

function isEven(num) {
    return (num % 2 == 0) ? "Yes" : "No";
}

console.log("2: " + isEven(2));
console.log("3: " + isEven(3));

설명.

위의 조작은 다음과 같습니다.

  • (num % 2 == 0)| 이것은 심플합니다.if각 괄호 내의 식이 참인지 여부를 확인하는 문 조건입니다.
  • ? "Yes"작업이 참일 경우 지정된 문자열 리터럴이 이 실행의 결과로 자동으로 반환됩니다.
  • : "No"이거는else이 동작의 절, 조건이 충족되지 않으면No이 반환됩니다.

이거 조심하세요.-1 != true 및 -1 != false이지만 -1은 true로 평가됩니다.날 믿어, 난 그런 일이 일어나는 걸 봤어.

그렇게

- 1 ? "진측" : "거짓측"

「진정한 면」으로 평가하다

언급URL : https://stackoverflow.com/questions/1771786/question-mark-and-colon-in-javascript

반응형