모던 자바스크립트 2.10 조건처리 2.11 논리연산자

모던 자바스크립트 2.10 조건처리 2.11 논리연산자

'if' 문

괄호안의 조건이 tru이면 코드블록 실행

형 변환 챕터에서 공부한 형 변환 규칙을 통해

0, 빈문자열, null, undefined, NaN -> false = fasly

이 외의 값 -> true = truthy

'else'절

if문 뒤에 else 절.

else 뒤에 이어지는 코드 블록은 조건이 거짓일 때 실행

'else if'로 복수 조건 처리

유사하지만 약간씩 차이가 있는 조건 여러 개 처리할 때 사용

조건부 연산자 '?'

조건에 따라 다른 값을 변수에 할당할 때

let result = condition ? value1 : value2;

평가 대상인 condition이 truthy라면 value1이, 그렇지 않으면 value2가 반환

let accessAllowed; let age = prompt('나이를 입력해 주세요.', ''); if (age > 18) { accessAllowed = true; } else { accessAllowed = false; } alert(accessAllowed);

이를 조건 연산자 '?'를 이용해 변환하면

let accessAllowed = (age > 18) ? true : false;

다중 '?'

물음표 연산자?를 여러 개 연결하면 복수의 조건을 처리할 수 있음

let age = prompt('나이를 입력해주세요.', 18); let message = (age < 3) ? '아기야 안녕?' : (age < 18) ? '안녕!' : (age < 100) ? '환영합니다!' : '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'; alert( message );

가독성 좋지 않으므로 if, else문으로 변환가능

if (age < 3) { message = '아기야 안녕?'; } else if (age < 18) { message = '안녕!'; } else if (age < 100) { message = '환영합니다!'; } else { message = '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'; }

논리연산자

논리 연산자의 종류 3가지

||(OR), &&(AND), !(NOT)

||(OR)

result = a || b;

불린값 조작하는데 사용

하나라도 true면 true 반환

alert( true || true ); // true alert( false || true ); // true alert( true || false ); // true alert( false || false ); // false

첫번째 truthy 를 찾는 OR 연산자 '||'

불린형이 아닌 경우도 가능

1. 왼쪽 피연산자부터 오른쪽으로 진행

2. 각 피연산자를 불린형으로 변환. 변환 후 값이 true이면 연산 멈추고 해당 피연산자의 변환 전 값을 반환

3. 모든 피연산자가 false로 평가된 경우엔 마지막 피연산자 반환

alert( 1 || 0 ); // 1 (1은 truthy임) alert( null || 1 ); // 1 (1은 truthy임) alert( null || 0 || 1 ); // 1 (1은 truthy임) alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함) let firstName = ""; let lastName = ""; let nickName = "바이올렛"; alert( firstName || lastName || nickName || "익명"); // 바이올렛

&&(AND)

result = a && b;

피연산자가 모두 참일 때 true 반환

alert( true && true ); // true alert( false && true ); // false alert( true && false ); // false alert( false && false ); // false

첫번째 falsy를 찾는 AND 연산자 '&&'

1. 왼쪽 피연산자부터 오른쪽으로 진행

2. 피연산자는 불린형으로 변환된 후, 변환값이 false이면 평가를 멈추고 해당 피연산자의 변환 전 값 반환

3. 모든 피연산자가 true로 평가되는 경우 마지막 피연산자 반환

// 첫 번째 피연산자가 truthy이면, // AND는 두 번째 피연산자를 반환합니다. alert( 1 && 0 ); // 0 alert( 1 && 5 ); // 5 // 첫 번째 피연산자가 falsy이면, // AND는 첫 번째 피연산자를 반환하고, 두 번째 피연산자는 무시합니다. alert( null && 5 ); // null alert( 0 && "아무거나 와도 상관없습니다." ); // 0 alert( 1 && 2 && null && 3 ); // null alert( 1 && 2 && 3 ); // 마지막 값, 3

**&&의 우선순위가 ||보다 높습니다.

!(NOT)

result = !value;

1. 피연산자를 불린형으로 변환

2. 변환된 값의 역을 반환

alert( !true ); // false alert( !0 ); // true

** !!이면 boolean형으로 변환한 값 얻을 수 있음

**NOT 연산자의 우선순위는 모든 논리 연산자 중에서 가장 높기 때문에 항상 &&나 || 보다 먼저 실행

from http://jjuunnjuning.tistory.com/77 by ccl(A) rewrite - 2021-11-04 02:28:39