1 분 소요

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);
}

📁 참고

DreamCoding



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기