반응형
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
최대 인 경우 = 00
최대 == 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
}
이것을 조심하십시오. -1! = true 및 -1! = false이지만 -1은 true로 평가됩니다. 날 믿어, 나는 그것이 일어난 것을 보았다.
그래서
-1 ? "진정한 측": "거짓 측"
"진정한"평가
참고 URL : https://stackoverflow.com/questions/1771786/question-mark-and-colon-in-javascript
반응형
'Programing' 카테고리의 다른 글
Java에서 null은 무엇입니까? (0) | 2020.04.12 |
---|---|
AngularJS : 컨트롤러 기능에서 뷰를 어떻게 전환합니까? (0) | 2020.04.12 |
MySQL 및 GROUP_CONCAT () 최대 길이 (0) | 2020.04.12 |
HTML5 data- * with asp.net mvc TextboxFor HTML 속성 (0) | 2020.04.12 |
문자열 객체와 문자열 리터럴의 차이점 (0) | 2020.04.12 |