true
이면 true
를 반환.true
를 반환. 그 외의 경우는 false
반환.헷갈렸던 문제들
첫 번째 OR || 은 왼쪽 피연산자인 alert(1)를 평가합니다. 이때 첫 번째 얼럿 창에 1이 출력되죠.
alert메서드는 undefined를 반환하기 때문에, OR 연산자는 다음 피연산자를 평가하게 됩니다. truthy를 찾기 위해 말이죠.
두 번째 피연산자(오른쪽 피연산자)인 2는 truthy이기 때문에 실행이 멈추고 2가 반환됩니다. 반환된 값 2는 제일 바깥 alert의 피연산자가 되어 두 번째 얼럿 창에 출력됩니다.
평가가 alert(3)까지 진행되지 않기 때문에 3은 출력되지 않습니다.
2 && 3 = 3이므로, 문제에서 제시한 표현식은 아래와 같이 바꿔쓸 수 있습니다.
null || 3 || 4
따라서 첫 번째 truthy인 3이 출력됩니다.