돌아가기

AND 연산자의 피연산자가 alert 라면?

중요도: 3

아래 코드의 결과를 예측해 보세요.

alert( alert(1) && alert(2) );

얼럿 창엔 1, undefined가 차례대로 출력됩니다.

alert( alert(1) && alert(2) );

alert를 호출하면 undefined가 반환됩니다. alert는 단순히 얼럿 창에 메시지만 띄워주고, 의미 있는 값을 반환해 주지 않습니다.

&&는 왼쪽 피연산자를 평가하고(이때 1이 얼럿 창에 출력됩니다) 평가를 즉시 멈춥니다. alert(1)의 평가 결과는 undefined로 falsy이기 때문이죠. && 연산자는 falsy를 만나면 그 값을 출력하고 즉시 연산을 멈춥니다.