Operator / if / Loop
연산자 / 조건문 / 반복문
Operator : 연산자
1. 문자열 + 문자열 : String concatenation
console.log('my' + 'cat'); // my cat
console.log('1' + 2); // 12
console.log(`string literals:1+2=${1 + 2}`); // string literals:1+2=3
2. 산술 연산자 : Numeric operators
console.log(1 + 1); // add
console.log(1 - 1); // substract
console.log(1 / 1); // divide
console.log(1 * 1); // multiply
console.log(5 % 2); // remainder (나눈 나머지값)
console.log(2 ** 3); // exponentiation (제곱근)
3. 증감 연산자 : Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
// preIncrement: 3, counter: 3
const postIncrement = counter++; // 3, 3
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`); // 3, 4
const preDecrement = --counter;
console.log(`preDecrement: ${preDecrement}, counter: ${counter}`); // 3, 3
const postDecrement = counter--;
console.log(`preDecrement: ${preDecrement}, counter: ${counter}`) // 3, 2
4. 할당 연산자 : Assignment operators
let x = 3;
let y = 6;
x += y; // x = x + y;
x -= y;
x *= y;
x /= y;
5. 비교 연산자 : Comparison operators
console.log(10 < 6); // less than
console.log(10 <= 6); // less than or equal
console.log(10 > 6); // greater than
console.log(10 >= 6); // greater than or equal
6. 논리 연산자 : Logical operators - || (or), && (and), ! (not)
const value1 = true;
const value2 = 4 < 2; // false
// || (or)
// value중 하나라도 true면 출력
console.log(`or: ${value1 || value2 || check()}`);
// && (and), finds the first falsy value
// value 모두가 true여야 출력
console.log(`and: ${value1 && value2 && check()}`);
function check(){
for (let i = 0; i < 10; i++){
//wasting time
console.log('shock');
}
return true;
}
// !(not)
// 값을 반대로 바꿔서 출력
console.log(!value1); // false
7. 동등/일치 연산자 : Equality
const stringFive = '5';
const numberFive = 5;
// == loose equality, with type conversion
console.log(stringFive == numberFive); // true
console.log(stringFive != numberFive); // false
// === strict equality, no type conversion
console.log(stringFive === numberFive); // false
console.log(stringFive !== numberFive); // true
// object equality by reference : 객체는 메모리에 탑재될 때 reference형태로 저장됨
const ellie1 = {name: 'ellie'};
const ellie2 = {name: 'ellie'};
const ellie3 = ellie1;
console.log(ellie1 == ellie2); // reference 값이 다르기 때문에 false
console.log(ellie1 === ellie2); // false
console.log(ellie1 == ellie3); // 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); // true
console.log(null === undefined); // false
if : 조건문
8. 조건 연산자 : Conditional operators: if
// if, else if, else
const name = 'ellie';
if(name === 'ellie'){
console.log('Welcome, Ellie!');
} else if (name === 'coder'){
console.log('You are amazing coder');
} else{
console.log('unknown')
}
9. 삼항 조건 연산자 : Ternary operator
// condition ? value1 : value2;
console.log(name === 'ellie' ? 'yes' : 'no');
10. Switch문 : Switch statement
const browser = 'IE';
switch(browser){
case 'IE':
console.log('go away');
break;
case 'Chrome':
case 'Firefox':
console.log('love you'); // 같은 케이스면 묶어서 출력도 가능 - 가독성이 좋음
break;
defalut:
console.log('same all!');
break;
}
Loop : 반복문
11. 반복문 : Loops
let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
// do-while loop
do{
console.log(`do while: ${i}`);
i--;
} while (i > 0);
// for loop, for(begin; condition; step)
for(i = 3; i > 0; i--){
console.log(`for: ${i}`);
}
for(let i = 3; i > 0; i = i - 2){
console.log(`inline variable for: $(i)`);
}
// nested loops - cpu에 좋지 않기 때문에 안 쓰는게 좋음
for(let i = 0; i < 10; i++){
for(let j = 0; j < 10; j++){
console.log(`i: ${i}, j:${j}`);
}
}
// break, continue
// break는 loop를 완전히 끝내는 것 / continue는 지금 것만 skip하고 다음으로 넘어가는 것
// Q1. iterate from 0 to 10 and print only even numbers(use continue)
for(let i = 0; i < 11; i++){
if(i % 2 === 0){
continue;
}
console.log(`q1. ${i}`);
}
// Q2. iterate from 0 to 10 and print numbers until reaching 8(use break)
for(let i = 0; i < 11; i++){
if(i > 8){
break;
}
console.log(`q2. ${i}`);
}
Last updated