자바스크립트 기본(11) - 논리 연산자
자바스크립트엔 세 종류의 논리 연산자 ||
(OR), &&
(AND), !
(NOT)가 있다.
1.(OR)
'OR'연산자는 두 개의 수직선 기호로 만들 수 있다.
피연산자 중 하나라도 true
라면 true
를 반환하고 그렇지 않으면 false
를 반환한다.
피연산자가 모두 false
인 경우를 제외하면 항상 true
를 나타내며,
피연산자가 불린형이 아니라면 평가를 위해 불린형으로 변환한다.if
문에서 주로 활용하지만 자바스크립트에서의 특수한 활용 방법이 존재한다.
- 첫 번째 truthy를 찾는 OR 연산자
||
위와 같은 경우에result = value1 || value2 || value3;
result
에는value1
부터value3
까지 순차적으로 검사하며||
는true
를 반환하는 첫 번째value
를 반환하여result
에 할당한다.
단, 피연산자에 truthy값이 하나도 없다면 마지막 피연산자를 반환한다.let firstName = ""; let lastName = ""; let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
예를 모든 값이 falsy 값이라면 기본 값으로 설정된 값을 가지도록 지정하는 등의 작없을 할 수 있다.
2. 단락 평가
`||`연산자는 `true`값을 만나면 즉시 해당 평가를 멈추기 때문에 `false`일 때만 명령어를 사용하도록 구성할 수 있다.
```js
true || alert("not printed");
false || alert("printed");
2.(AND)
두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 의미한다.
피연산자 중 하나라도 false
라면 false
를 반환하고 그렇지 않으면 true
를 반환한다.||
와 유사하게 첫번째 falsy 값을 찾는 연산자로 사용할 수 있다.
result = value1 && value2 && value3;
모두 true
라면 마지막 값이, 중간에 false
가 있다면 해당 값이 result
에 할당된다.
3.와
&&
의 우선순위가 ||
보다 높아서 a && b || c && d
는 (a && b) || (c && d)
와 동일하게 동작한다.
종종 ||
와 &&
를 if
문처럼 사용하는 경우도 있으나, 가독성과 유지보수성에 있어서 좋지 않다.
4.(NOT)
논리 연산자 NOT은 느낌표 !
를 써서 만들 수 있다.!
연산자는 피연산자를 하나만 받아 불린형으로 변환하고, 해당 값의 역을 반환하다.
(!!
을 사용하면 Boolean()
을 사용한 값과 같은 결과가 반환된다.)
NOT연산자의 우선순위는 모든 논리 연산자 중에서 가장 높아 &&
와 ||
보다 먼저 실행된다.
'TIL > 자바스크립트' 카테고리의 다른 글
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(12) (0) | 2023.05.19 |
---|---|
[TIL] 오늘의 자바스크립트 - Spread Operator (0) | 2023.05.12 |
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(10) (0) | 2023.05.10 |
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(9) (0) | 2023.05.09 |
[TIL] 오늘의 자바스크립트 - 변수 (0) | 2023.05.08 |