Operator
++, -- operator
let testNumPlus = 3;
const resultNumPlus = ++testNumPlus;
console.log(`testNumPlus: ${testNumPlus}`);
console.log(`resultNumPlus: ${resultNumPlus}`);
-> testNumPlus: 4
-> resultNumPlus: 4
let testNumMinus = 3;
const resultNumMinus = testNumMinus--;
console.log(`testNumMinus: ${testNumMinus}`);
console.log(`resultNumMinus: ${resultNumMinus}`);
-> testNumMinus: 2
-> resultNumMinus: 3
logical operator
- ||(or), &&(and), !(not)
- || 의 경우 조건(들)을 차례로 체크하며 true가 나오는 순간 멈춘다.
- expression이나 함수 등의 연산이 필요한 조건은 뒤로 빼는 것이 효율적
- && 의 경우도 마찬가지. false 가 나오는 순간 멈춘다.
const condition1 = true;
const condition2 = 1 < 2;
function condition3() {
for(let i = 1; i < 10; i++){
console.log(i);
}
return true;
}
console.log(`or: ${condition1 || condition2 || condition3()}`);
-> or: true
equality
- ==, ===
- ==
- loose equality, with type conversion
- 타입을 맞추어 값을 비교
- '5' == 5 -> true
- ===
- strict equality, no type conversion
- 타입과 값을 함께 비교
- 웬만하면 이쪽을 쓰자
- '5' === 5 -> false
- object 끼리 비교
const object1 = {nm: 'woogie', age: 28};
const object2 = {nm: 'woogie', age: 28};
const object3 = object1;
console.log(object1.nm === object2.nm); -> true
console.log(object1 === object2); -> false
console.log(object1 === object3); -> true
console.log(0 == false); -> true
console.log(0 === false); -> false
console.log('' == false); -> true
console.log('' === false); -> false
console.log(null == undefined); -> true
console.log(null === undefined); -> false
Ternary operator
let conditionTernary = 'woogie';
let resultNumTernary = 0;
conditionTernary === 'woogie' ? resultNumTernary = 1 : resultNumTernary = 0;
console.log(resultNumTernary); -> 1
switch
- 조건에 따른 로직이 같은 경우에는 아래와 같이 쓸 수 있다.
let conditionSwitch = 'woogie3';
let resultSwitch1 = '1';
let resultSwitch2 = '2';
let resultSwitch3 = '3or4';
switch(conditionSwitch){
case 'woogie1':
console.log(resultSwitch1);
break;
case 'woogie2':
console.log(resultSwitch2);
break;
case 'woogie3':
case 'woogie4':
console.log(resultSwitch3);
break;
} -> 3or4