JavaScript & Node.js
#.3 Operator
Haksae
2022. 1. 9. 15:31
1. String Concatenations
- (’A’ + ‘B’) → ‘AB’
- (’1’ + 2) → 12
- 숫자형이 문자형을 만나면 문자형으로 변한다.
- String Literals
- ${1 + 2} -> 3
- 백틱을 이용
2. Numeric Operators
-
- : add
- : substract
- / : divide
- : multiply
- % : remainder / 나머지 값만 리턴
- ** : exponentiation / 제곱
3. Increment and decrement operators
- ++ : increment operator
- — : decrement operator
1) preIncrement (decrement도 동일)
let A = 3;
const B = ++A;
console.log(A); // 4
console.log(B); // 4
- A = A + 1;
- B = A;
2) postIncrement (decrement도 동일) *헷갈림 주의
let A = 3;
const B = A++;
console.log(A); // 4
console.log(B); // 3
- B = A;
- A = A + 1;
4. Assignment Operators
let x = 3;
let y = 6;
x += y; // x = x + y
x -= y; // x = x - y
x *= y; // x = x * y
x /= y; // x = x / y
5. Comparison Operators
- < : less than
- <= : less than or equal
- : greater than
- = : greater than or equal
6. Logical Operators
- || : or
- && : and
- ! : not / not 연산자는 값을 거꾸로 바꿔줌
- or와 and 연산자를 만들 때, 함수(heavy한 operation)를 넣는다면 가장 나중에 넣는 것이 좋다. (파싱 낭비)
- and는 null 체크할 때도 많이 씀
if (nullableObject != null) {
nullableObject.something;
}
7. Equality Operators
- == : loose equality, with type conversion
- === : strict equality, no type conversion
- object equality by reference (이것을 조심하는게 좋음)
const hak1 = {name: 'hak'}
const hak2 = {name: 'hak'}
const hak3 = hak1;
console.log(hak1 == hak2); // false
console.log(hak1 === hak2); // false
console.log(hak1 ===hak3); // true
- reference 기준으로 생각하면된다.
- 그래서 웬만하면 strict equality를 쓰는게 좋다.
- e.g
console.log(0 == false); // true false로 간주
console.log(0 === false); // false 0은 boolean 타입이 아님
console.log('' == false); // true
console.log('' === false); // false empty는 boolean 타입이 아님
console.log(null == undefined); // true
console.log(nyll === undefined); // false 둘은 다른 타입
출처 : 드림코딩엘리 https://www.youtube.com/channel/UC_4u-bXaba7yrRz_6x6kb_w