Programing

JavaScript의 물음표 및 콜론

lottogame 2020. 4. 12. 10:13
반응형

JavaScript의 물음표 및 콜론


나는 다음 라인을 가로 질러왔다

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

무엇을 ?하고 :이러한 맥락에서 의미를?


이를 조건부 연산자 ( 삼항 연산자 )라고합니다.

형식은 다음과 같습니다. condition? value-if-true: "then"및 "else"로 value-if-false
생각하십시오 .?:

귀하의 코드는

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

명확성을 위해 적절하게 괄호로 묶었습니다.

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

의미 중 하나를 반환

  • 255*delta/max 최대 인 경우 = 0
  • 0 최대 == 0 인 경우

다음과 같이 대괄호로 쓸 때 약간 더 명확합니다.

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

그것이하는 일은 첫 번째 괄호 안의 부분을 평가하는 것입니다. 결과가 참이면? 뒤에 나오는 부분 :가 반환되기 전에. False이면 다음에 나오는 것이 반환됩니다.


hsb.s = max! = 0? 255 * 사랑해

? 삼항 연산자이며 다음과 같이 if처럼 작동합니다.

! =는 같지 않음을 의미

따라서이 줄의 긴 형식은

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

? : 이것은 삼항 연산자가 아닌가?

var x= expression ? true:false


? :는 속기 else {}if(){}문제입니다. 따라서 코드는 다음과 호환됩니다.

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

MDN-조건부 (Ternary) 연산자


이것을 조심하십시오. -1! = true 및 -1! = false이지만 -1은 true로 평가됩니다. 날 믿어, 나는 그것이 일어난 것을 보았다.

그래서

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

"진정한"평가

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

반응형