"if"에 관한 고찰
중요도: 5
아래 표현식에서 어떤 alert
가 실행될까요?
if(...)
안에 표현식이 있으면 어떤 일이 일어날까요?
if (-1 || 0) alert( 'first' );
if (-1 && 0) alert( 'second' );
if (null || -1 && 1) alert( 'third' );
첫 번째 표현식과 세 번째 표현식에 있는 alert
가 실행됩니다.
이유:
// -1 || 0 은 -1 이므로 truthy입니다.
// 따라서 alert가 실행됩니다.
if (-1 || 0) alert( 'first' );
// -1 && 0 은 0 이므로 falsy입니다.
// 따라서 alert가 실행되지 않습니다.
if (-1 && 0) alert( 'second' );
// 연산자 &&는 ||보다 우선순위가 높습니다.
// 따라서 -1 && 1 이 먼저 실행되어 아래와 같이 표현식이 순차적으로 바뀝니다.
// null || -1 && 1 -> null || 1 -> 1
// 결과적으로 alert가 실행됩니다.
if (null || -1 && 1) alert( 'third' );