🌈 연산자
1. 연산자 종류
- 수학연산자, 증감연산자, 할당연산자, 비교연산자, 논리연산자, 동등연산자 등
1) 사칙 연산자
덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 몫(//), 나머지(%), 거듭제곱(**)
let s = "my" + "string";
alert(s);
alert( '1' + 2 );
alert( 2 + '1' );
alert(2 + 2 + '1' );
alert( 6 - '2' );
alert( '6' / '2' );
2) 증감연산자
- 숫자를 순차적으로 증가시키거나 감소시키는 것이 증감연산자임
- 증감연사자는 전위형과 후위형으로 나뉨
- 전위형(++변수 또는 --변수)은 자신의 값을 증가 또는 감소 시킨 뒤 값을 변수에 할당
- 후위형(변수++ 또는 변수--)은 변수에 먼저 할당시킨 뒤, 자신을 증가 또는 감소 시킴
let counter = 2;
counter++;
alert( counter );
let counter = 2;
counter--;
alert( counter );
let counter = 1;
let a = ++counter;
console.log(counter)
console.log(a);
let counter = 1;
let a = counter++;
console.log(counter);
console.log(a);
let counter = 2;
const preIncrement = ++counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);
const preDecrement = --counter;
console.log(`preDecrement: ${preDecrement}, counter: ${counter}`);
const postDecrement = counter--;
console.log(`postDecrement: ${postDecrement}, counter: ${counter}`);
3) 할당연산자
- 할당할 때 쓰이는 "="도 연산자의 일종임
- 표현식(오른쪽)에서 계산이 먼저 이뤄지고, 그 결과가 변수(왼쪽)으로 할당됨
- 할당연산자는 우선순위가 낮은 편에 속함
let x = 3;
let y = 6;
x += y;
console.log(x,y)
x -= y;
console.log(x,y)
x *= y;
console.log(x,y)
x /= y;
console.log(x,y)
let n = 2;
console.log(n)
n = n + 5;
console.log(n)
n = n * 2;
console.log(n)
let n = 2;
n *= 3 + 5;
console.log(n);
4) 비교연산자
- 크다(a>b), 작다(a<b) 등을 비교.
- 연산 결과를 Boolean형으로 반환
console.log(10 < 6);
console.log(10 <= 6);
console.log(10 > 6);
console.log(10 >= 6);
5) 논리연산자
const value1 = false;
const value2 = 4 < 2;
console.log(`or: ${value1 || value2 || check()}`);
function check() {
for (let i = 0; i < 10; i++) {
console.log("🥰");
}
return true;
}
console.log(`and: ${value1 && value2 && check()}`);
function check() {
for (let i = 0; i < 10; i++) {
console.log("🥰");
}
return true;
}
console.log(!value1);
6) 동등연산자
- 동등연산자는 같은지(==) 또는 다른지(!=)를 비교
- 동등연산자는 데이터 타입이 다른 피연산자를 비교할 때 피연산자를 숫자형으로 변환 후 비교함
- 이에 동등연산자 "=="은 0과 false를 구별하지 못함(서로 같다고 판단함)
- 이를 구별하기 위해서는 보다 엄격한 동등연산자인 일치 연산자(===, !==)를 사용하면 형 변환 없이 값을 비교 가능
- 동등연사자의 예외 규칙으로 null과 undefined를 비교할 때, 특별한 규칙이 적용되 true를 반환
- 따라서 동등연산자는 일관성이 부족하기 때문에, JavaScript를 쓸 때 일치연산자를 사용하는 것을 권장
console.log(10 == '10');
console.log(10 === 10);
console.log(10 === '10');
console.log(0 == false);
console.log('' == false);
console.log( 0 === false );
console.log(null == undefined);
console.log( null === undefined );
7) null vs undefined / null vs 0 / undefined vs 0
- null과 undefined 등의 예외에 대해서 알고 있어야 함
console.log( null == undefined );
console.log( null === undefined );
console.log( null > 0 );
console.log( null == 0 );
console.log( null >= 0 );
alert( undefined > 0 );
alert( undefined < 0 );
alert( undefined == 0 );