# 오늘 한 일
1) + let x = 'my ' let y = 'cat' console.log(x+=y); // 결과값: my cat 2) % (reminder) console.log(5%2); // 결과값 1 3) \** (squared) console.log(2\**3); // 결과값 8 4) || (OR) const value1 = true; const value2 = 4 < 2; function check(){ for(let i = 0; i < 5; i++){ console.log(i); } return true; } console.log(`or: ${value1 || value2 || check()}`); // 결과값: true 5) && (AND) * AND연산자는 조건 중에 처음으로 false가 나오는 곳에서 멈춘다. 6) ! (NOT) 7) = (Equality) const stringFive = '5'; const numberFive = 5; console.log(stringFive == numberFive); // 결과값 true console.log(stringFive != numberFive); // 결과값 false console.log(stringFive === numberFive); // 결과값 false console.log(stringFive !== numberFive); // 결과값 true const member1 = {name: 'charlie'}; const member2 = {name: 'charlie'}; const member3 = member1; console.log(member1 == member2); // 결과값 false * reference가 다르므로 false console.log(member1 === member2); // 결과값 false * reference가 다르므로 false console.log(member1 === member3); // 결과값 true * reference가 같으므로 true
OR연산자는 조건 중에 처음으로 true가 나오는 곳에서 멈춘다. 그러므로 true 조건이 일찍 도출될 수록 연산이 빨라진다.
(#헤비한 조건을 앞에 두면 연산에 시간이 더 걸리겠지....)
== (타입이 달라도 의미하는 바가 같으면 true값을 반환)
===는 strict equality(완전히 일치할 때만 true)
일반적으로 strict equality를 사용
1) preIncrement let counter = 2; const preIncrement = ++counter; console.log(`${preIncrement}, ${counter}`); // 결과값: preIncrement 3, counter 3 2) postIncrement const postIncrement = counter++; console.log(`${postIncrement}, ${counter}`); // 결과값: postIncrement 3, counter 4
const name = 'charlie'; if (name === 'charlie') { console.log('Welcome, charlie'); } else if (name === 'leezche') { console.log('Hi, leezche'); } else { console.log('unknown'); } * 삼항 연산자 (=Ternary operator) 형식: condition ? value1 : value2; console.log(name === 'Charlie' ? 'Hi, Charlie' : 'unknown');
const browser = 'Chrome'; // 결과값: love you switch (browser) { case 'IE': console.log('go away!'); break; case 'Chrome': case 'Firefox': console.log('love you!'); break; default: console.log('same all!'); break; }
1) while let i = 3; while (i > 0) { console.log(`while: ${i}`); i--; } 2) do while let a = 5; do { console.log(`do while: ${a}`); a--; } while (a > 0); 3) for for (i = 3; i > 0; i--) { console.log(`for: ${i}`); } * nested loop는 사용 자제 ex. for (let i = 0; i < 2; i++) { for (let j = 0; j < 3; j++) { console.log(`i: ${i}, j: ${j}`); } }
Q1. 0 ~ 10 사이의 짝수값만 도출하시오. A1. for (let i = 0; i < 6; i++) { console.log(`${i*2}`); } 1) 조건: continue 사용 for (let i = 0; i < 11; i++) { if(i%2 === 1) { continue; } else { console.log(`${i}`); } } Q2. break를 사용하여 0 ~ 8까지 도출하시오. A2. for (let i = 0; i < 11; i++) { if(i === 8) { break; } else { console.log(`${i}`); } } * continue는 건너뛰는거고 break는 종료하는 것