앞에서 부울 연산자 && 및 ||에 대해 논의했을 때 그 결과는 부울 값이라고 말했습니다. 이는 지나치게 단순화된 것입니다. 부울 데이터 유형을 계산하는 데 사용하는 경우 부울 값을 반환합니다. 그러나 다른 유형의 데이터를 계산하는 데에도 사용할 수 있습니다. 이 경우 매개변수 중 하나가 반환됩니다.
또는 "||" 연산자가 실제로 수행하는 작업은 다음과 같습니다. 먼저 왼쪽의 매개변수를 확인하고 부울 값으로 변환되어 true이면 왼쪽의 매개변수를 반환합니다. 오른쪽의 매개변수입니다. 연산자의 양쪽이 부울 값인 경우에도 이런 경우가 있는지 신중하게 생각해 보십시오. 왜 이렇게 동작하는 걸까요? 이 작업의 결과는 실제로 매우 실용적입니다. 이 예를 살펴보겠습니다.
var input = 프롬프트(" 이름이 무엇입니까?", "Kilgore Trout");
alert("안녕하세요" (입력 || "dear"))
사용자가 "취소"를 누르면 " 또는 직접 닫기 프롬프트 대화 상자가 닫히면 입력 값은 null 또는 ""가 됩니다. 두 경우 모두 부울 유형으로 변환된 값은 false입니다. 그러면 이때 input || "dear"라는 표현은 input에 값이 있으면 input의 값을 얻고, 그렇지 않으면 "dear"를 얻는다는 뜻입니다. 이는 기본값을 제공하는 매우 간단한 방법입니다.
은 "&&" 연산자와 유사하게 작동하지만 "||"와는 반대입니다. 왼쪽 매개변수가 부울 값 "false"로 변환되면 해당 값을 반환하고, 그렇지 않으면 오른쪽 값을 반환합니다. 이 두 연산자의 또 다른 특징은 오른쪽에 있는 표현식이 필요한 경우에만 평가된다는 것입니다. "참 || "false && X"도 마찬가지입니다.
false || 일어나고 있습니다!" );
true || Alert("내가 아닙니다.");