자바스크립트에는 세종류의 논리 연산자 ||(OR) &&(AND) !(NOT)가 있다.
|| (OR)
'OR'연산자는 두 개의 수직선 기호로 만들 수 있다.
OR연산자는 불린값을 조작하는데 쓰인다 인수중 하나라도 true이면 true를 반환하고 그렇지 않으면 false 를 반환한다.
자바스크립트 에서만 제공하는 논리연산자OR의 '추가' 기능
result = value1 || value2 || value3;
동작 순서
- 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가면 피연산자를 평가
- 각 피연산자를 불린형으로 변환 변환후 그값이 true이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환
- 피연산자 모두를 평가한 경우(모든피연산자가 false로 평가되는 경우)엔 마지막 피연산자(value3)를 반환
#핵심은 반환값이 형 변환을 하지 않은 원래 값
이런 OR 연산자의 추가 기능을 이용하면 여러 용도로 OR 연산자를 활용할 수 있다.
1.변수 또는 표현식으로 구성된 목록에서 첫번째 true 찾기
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
첫번째 true 인 값을 반환 모두다 false인 경우 "익명"을 반환
2. 단락 평가
OR || 은 왼쪽부터 시작해서 오른쪽으로 평가를 진행하는데 ,true를 만나면 나머지 값들은 건드리지 않은채 평가를 멈춤
true || alert("not printed");
false || alert("printed");
첫번쨰 줄은 ||연산자는 true를 만나자마자 평가를 멈추기때문에 alert가 실행되지 않음
&& (AND)
AND 연산자는 두 피연산자가 모두가 참일때 true를 반환 그외의 경우는 false를 반환
첫 번째 false를 찾는 AND 연산자 &&
AND 연산자 && 동작 순서
- 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가
- 각 피연산자는 불린형으로 변환. 변환 후 값이 false 이면 평가를 멈추고 해당 피연산자의 변환전 원래값을 반환
- 피연산자 모두가 평가되는 경우 (모든 피연산자가 true로 평가되는 경우)엔 마지막 피연산자가 반환
# &&의 우선순위가 ||보다 높다.
!(NOT)
NOT 문법
NOT 연산자는 인수를 하나만 받고 다음 순서대로 연산을 수행
1. 피연산자를 불린형 (true/false)으로 변환
2. 1에서 변환된 값의 역을 반환
NOT을 두개 연달아 사용(!!) 하면 값을 불린형으로 변환할 수 있다.
alert( !!"non-empty string" ); // true
alert( !!null ); // false
이때 첫번째 NOT 연산자는 받은 값을 불린형으로 변환한 후 이 값의 역을 반환하고
두번째 연산자는 첫 번째 NOT 연산자가 반환한 값의 역을 반환한다. 이렇게 NOT을 연달아 사용하면 불린형으로 변환할 수 있다.
# NOT 연산자의 우선순위는 모든 논리 연산자 중에서 가장 높다.
'자바 스크립트' 카테고리의 다른 글
자바 스크립트 while 과 for 반복문 (0) | 2020.12.04 |
---|---|
자바 스크립트 null 병합 연산자 '??' (0) | 2020.12.02 |
자바스크립트 if와 ?를 사용한 조건처리 (0) | 2020.12.02 |
자바스크립트 비교 연산자 (0) | 2020.12.02 |
자바스크립트 형 변환 (0) | 2020.12.02 |
댓글