AI와 데이터 사이언스의 이론과 실전
JavaScript - 연산자(산술, 비교, 대입, 증감, 논리, 비트, 삼항) 본문
오늘은 자바스크립트에서 사용하는 연산자에 대해 알아보겠습니다.
1. 산술연산자
- + : 더하기
- - : 빼기
- * : 곱하기
- / : 나누기
- % : 나머지
- ** : 제곱
2. 비교연산자
- < : 작아야 true
- > : 커야 true
- <= : 작거나 같아야 true
- >= : 크거나 같아야 true
- == : 값이 같아야 true
- != : 값이 달라야 true
- === : 값과 타입이 모두 같아야 true
- !== : 값과 타입까지 모두 달라야 true
예) 3 == 3 -> true
'3' == 3 -> true(자동형변환이 되어 둘의 타입이 달라도 True)
'3' === 3 -> false
3.대입 연산자
대입 연산자는 변수에 값을 할당하거나, 변수의 현재 값과 다른 값을 조작하여 다시 변수에 할당하는데 사용됩니다.
- = : 변수에 값을 할당하는 데 사용됩니다.
- += : 변수에 현재 값과 다른 값을 더한 후 그 결과를 변수에 할당
- -= : 변수에 현재 값에서 다른 값을 빼고, 그 결과를 변수에 할당
- *= : 변수에 현재 값과 다른 값을 곱한 결과를 변수에 할당
- /= : 변수에 현재 값에서 다른 값을 나눈 결과를 변수에 할당
- %= : 변수에 현재 값을 다른 값으로 나눈 후의 나머지 값을 변수에 할당
- **= : 변수의 값을 다른 값의 거듭제곱으로 계산하고 그 결과를 변수에 할당
4. 증감 연산자
1을 더하거나 빼주는 연산자 입니다.
- ++변수 (전위 증가 연산자) : 변수의 값을 1 증가시킨 후, 증가된 값을 반환
예를 들어, ++x는 x의 값을 1 증가시키고, 그 다음 값으로 x를 갖게 됩니다. - --변수 (전위 감소 연산자) : 변수의 값을 1 감소시킨 후, 감소된 값을 반환
예를 들어, --y는 y의 값을 1 감소시키고, 그 다음 값으로 y를 갖게 됩니다. - 변수++ (후위 증가 연산자) : 변수의 현재 값을 반환하고, 그 다음에 값을 1 증가
예를 들어, z++는 z의 현재 값을 반환하고, 그 다음에 z의 값을 1 증가시킵니다. - 변수-- (후위 감소 연산자) : 변수의 현재 값을 반환하고, 그 다음에 값을 1 감소
예를 들어, w--는 w의 현재 값을 반환하고, 그 다음에 w의 값을 1 감소시킵니다.
let num = 10
++num // 11 즉 num = num+1 과 같음
--num // 10 num = num - 1
num++ // 11
num-- // 10
num = 10
result = ++num // 연산우선순위가 달라져 num+1 대입이 먼저 진행
// num이 11이 된(1이 더해진) 상태에서 result에 저장됨
result = num++ // 연산우선순위가 달라져 result = num 대입이 먼저 진행된 후 num + 1이 진행
// result = num, num = num + 1
5. 논리연산자
- && : and
- || : or,
- ! : not
6. 비트 연산자
비트 연산자(Bitwise Operators)는 정수형 데이터의 각 비트(bit) 단위 연산을 수행하는 데 사용되며, 주로 비트 단위의 논리 연산, 시프트(이동) 연산에 활용됩니다.
- & (비트 AND)
- `&` 연산자는 두 개의 비트를 비교하여, 두 비트가 모두 1이면 결과 비트를 1로 설정합니다. 그렇지 않으면 결과 비트는 0입니다.
- 예시: `5 & 3`은 이진으로 변환하면 `0101 & 0011`이 되고, 결과는 `0001` (십진수 1)입니다. - | (비트 OR)
- `|` 연산자는 두 개의 비트를 비교하여, 두 비트 중 하나라도 1이면 결과 비트를 1로 설정합니다. 둘 다 0인 경우에만 결과 비트가 0입니다.
- 예시: `5 | 3`은 이진으로 변환하면 `0101 | 0011`이 되고, 결과는 `0111` (십진수 7)입니다. - ^ (비트 XOR)
- `^` 연산자는 두 개의 비트를 비교하여, 두 비트가 다를 경우 결과 비트를 1로 설정합니다. 두 비트가 같을 경우 결과 비트는 0입니다.
- 예시: `5 ^ 3`은 이진으로 변환하면 `0101 ^ 0011`이 되고, 결과는 `0110` (십진수 6)입니다. - ~ (비트 NOT)
- `~` 연산자는 비트의 반전 연산을 수행합니다. 1인 비트는 0으로, 0인 비트는 1로 반전됩니다.
- 예시: `~5`는 이진으로 변환하면 `~0101`이 되고, 결과는 `1010` (십진수 -6)입니다. - << (비트 왼쪽 시프트)
- `<<` 연산자는 비트를 왼쪽으로 이동시킵니다. 왼쪽으로 이동한 만큼 0으로 채워집니다.
- 예시: `5 << 2`는 이진으로 변환하면 `0101`을 왼쪽으로 2비트 이동시키고, 결과는 `010100` (십진수 20)입니다. - >> (비트 오른쪽 시프트)
- `>>` 연산자는 비트를 오른쪽으로 이동시킵니다. 오른쪽으로 이동한 만큼 최상위 비트(부호 비트)와 같은 값으로 채워집니다. 음수인 경우에는 1로, 양수인 경우에는 0으로 채워집니다.
- 예시: `5 >> 1`은 이진으로 변환하면 `0101`을 오른쪽으로 1비트 이동시키고, 결과는 `0010` (십진수 2)입니다.
비트 연산자는 주로 비트 단위 연산 및 비트 플래그 조작과 같은 저수준 작업에서 사용되며, 특수한 상황에서 유용합니다. 개발자가 비트 연산자를 사용할 때에는 데이터 형식과 비트 연산의 결과를 주의깊게 고려해야 합니다.
7. 삼항 연산자
변수 = 조건식 ? 반환값1 : 반환값2
조건식의 결과가 참이라면 반환값1, 거짓이라면 반환값2을 반환합니다.
'HTML과 CSS > JavaScript' 카테고리의 다른 글
| JavaScript - 폼(form), Location, history, navigator객체 (0) | 2023.11.05 |
|---|---|
| JavaScript - 호이스팅, 화살표 함수, 객체, 프로퍼티, 상속, 프로토타입 (0) | 2023.11.03 |
| JavaScript - 자료구조(배열, 프러퍼티), 사용자 정의 함수 (0) | 2023.11.02 |
| JavaScript - 변수(let, var)와 상수(const) (0) | 2023.10.29 |
| JavaScript - 특징, 콘솔 출력 (1) | 2023.10.27 |