본문 바로가기
자바 스크립트

자바스크립트 논리 연산자

by y00ns00 2020. 12. 2.

자바스크립트에는 세종류의 논리 연산자 ||(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 연산자의 우선순위는 모든 논리 연산자 중에서 가장 높다.

댓글