Ternary Operator - 3진 연산자

변수 = 조건 ? if true : if false;

특정 노드에 title 속성(attribute)가 실제 있는지 알아보려면 빈 값(null)인지 여부를 확인해야 합니다.
아래와 같이 말이죠.

							if (node.getAttribute("title") != null)
						

if 문이 참이면, title 속성이 실제 존재합니다. 거짓을 반환하면 node.getAttribute("title")은 빈 값(null)과 같게 됩니다.
이를 간단하게 아래의 코드처럼 쓸 수 있습니다.

							if (node.getAttribute("title"))
						

title 속성이 존재하면 if문은 여전히 참을 반환하게 되지요.
이제 title 속성이 없다면 텍스트 값이 비어있을 거라고 설정해 보겠습니다.

							if (node.getAttribute("title")) {
								var text = node.getAttribute("title");
							}else {
								var text = "";
							}
						

여기 똑같은 기능을 하는 다른 방법이 있습니다.

							var text = node.getAttribute("title") ? node.getAttribute("title") : "" ;
						

getAttribute 테스트는 물음표를 따라 갑니다. 이것을 3진 연산자(ternary operator)라고 합니다. 물음표 뒤에는 참이냐 거짓이냐에 따라서 두 개의 실행문이 따라 옵니다. 참일 경우 그대로 getAttribute("title") 값을 반환하지만, 거짓일 경우 getAttribute("title")는 빈 값임을 알려 줍니다.
title 속성이 존재하면 변수 text는 node.getAttribute("title")을 갖게 되고 그렇지 않으면 변수 text는 빈 문자열("")을 갖게 됩니다.