[JavaScript] 2. Operator
String concatenation
console.log('my' + 'cat');
console.log('1' + 2); // 12 (string)
Numeric operators
console.log(1 + 1);
console.log(1 - 1);
console.log(1 / 1);
console.log(1 * 1);
console.log(5 % 2);
console.log(2 ** 3); // 2^3
Logical operators: || (or), && (and), ! (not)
or
하나라도 true
이면 true
🌟 처음으로 true가 나오면 멈추고 true 반환
const v1 = true;
const v2 = false;
console.log(`or: ${v1 || v2 || check()}`); // 제일 무거운 연산은 or의 제일 마지막에 배치하는 것이 효율적!
function check(){
for(let i=0; i<10; i++){
// wasting time
console.log('😳');
}
return true;
}
and
하나라도 false
이면 false
🌟 처음으로 false가 나오면 멈추고 false 반환
-> or와 마찬가지로 제일 무거운 연산은 and의 제일 마지막에 배치하는 것이 효율적!
and로 null 체크하기
아래 두 코드는 같은 의미의 코드이다.
nullableObject && nullableObject.something
// nullableObject가 null(false)이라면 뒤가 실행안됨
// -> nullableObject가 null이 아닐때만 something이라는 object를 받아옴!
if(nullableObject != null){
nullableObject.something;
}
Eqaulity
== loose equality
const str = '5';
const num = 5;
console.log(str == num); // true
console.log(str != num); // false
=== strict equality
const str = '5';
const num = 5;
console.log(str === num); // false
console.log(str !== num); // true
object equality by reference
object는 메모리에 탑재될 때, reference 형태로 저장됨
const ann1 = {name: 'ann'};
const ann2 = {name: 'ann'};
// ann1과 ann2는 똑같은 data가 들어있는 object이지만 실제로 각각 다른 reference가 들어있음
// 각각의 reference는 서로 다른 object를 가리키고 있음
const ann3 = ann1;
// ann3에는 ann1의 reference가 할당되어 같은 object를 가리키고 있음
console.log(ann1 == ann2); // false 🌟
console.log(ann1 === ann2); // false
console.log(ann1 === ann3); // true
equality - puzzler
console.log(0 == false); // true
console.log(0 === false); // false
console.log('' == false); // true 🌟
console.log('' === false); // false
console.log(null == undefined); // ture 🌟
console.log(null === undefined); // false
Ternary operator
// condition ? v1 : v2;
const name = 'ann';
cosole.log(name === 'ann' ? 'yes' : 'no'); // yes
break, continue - puzzler
Q1. 0부터 10까지 짝수만 출력 (use continue)
for(let i=0; i<10; i++){
if(i % 2 === 1){
continue; // 다음 반복으로 jump
}
console.log(i);
}
Q2. 0부터 10까지 출력하는데 8에 도달하면 stop (use break)
for(let i=0; i<10; i++){
if(i > 8){
break; // 반복문 종료
}
console.log(i);
}
📁 참고
💛 개인 공부 기록용 블로그입니다. 👻