-
OR 연산자의 피연산자가 alert 라면?JavaScript 2021. 8. 15. 00:17
alert( alert(1) || 2 || alert(3) );
얼럿 창엔 1, 2가 차례대로 출력됩니다.
alert( alert(1) || 2 || alert(3) );
alert 메서드는 값을 반환하지 않습니다. 즉, undefined를 반환하죠.
- 첫 번째 OR || 은 왼쪽 피연산자인 alert(1)를 평가합니다. 이때 첫 번째 얼럿 창에 1이 출력되죠.
- alert메서드는 undefined를 반환하기 때문에, OR 연산자는 다음 피연산자를 평가하게 됩니다. truthy를 찾기 위해 말이죠.
- 두 번째 피연산자(오른쪽 피연산자)인 2는 truthy이기 때문에 실행이 멈추고 2가 반환됩니다. 반환된 값 2는 제일 바깥 alert의 피연산자가 되어 두 번째 얼럿창에 출력됩니다.
평가가 alert(3)까지 진행되지 않기 때문에 3은 출력되지 않습니다.
728x90'JavaScript' 카테고리의 다른 글
Asynchronous JavaScript (1) - 싱글 스레드, blocking(블로킹) 현상 (0) 2021.08.16 로그인 구현 (0) 2021.08.15 비교 연산자 (0) 2021.08.12 기본 연산자와 형 변환 (0) 2021.08.12 querySelector, querySelectorAll 차이 (0) 2021.01.20