본문 바로가기

Programming Language/Javascript

[강의노트][드림코딩] 연산, if, loop

드림코딩 자바스크립트 연산, if, loop 강의 노트

// 1. String concatenation
console.log('my'+'cat');
console.log('1'+2);
console.log(`string literals: 1 + 2 = ${1+2}`); // 줄바꿈, 특수 기호 등 적용 가능
console.log("Leo\'s \n\t book") // 줄바꿈 \n, 탭키 \t

/// 2. Numeric operators
console.log(5 % 2) // 나머지
console.log(2 ** 3) // 제곱

// 3. Increment ++ & Decrement --
let counter = 2;
const preIncrement = ++counter; // counter = counter + 1 >>>> preIncrement = counter
console.log(`preIncrement: ${preIncrement},  counter: ${counter}`);
const postIncrement = counter++; // counter = counter + 1 >>>> preIncrement = counter
console.log(`postIncrement: ${postIncrement},  counter: ${counter}`);


// 4. Assignment operators
let x = 3;
let y = 6;

x += y // x = x + y
x -= y
x %= y
x *= y

// 5. Comparison operators

// 6. Logical operators : || (or), && (and), ! (not)
const value1 = false;
const value2 = 4 < 2;
console.log(`or: ${value1 || value2 || check()}`); // 처음으로 true가 나오는 곳에서 멈추기 때문에 앞단에 핀포인트 필터 설정이 권장됨 - 함수를 가장 끝에 두기
function check(){
    for (let i = 0; i<10; i++){
        console.log(`Noooo!`);
    }
    return true
}

console.log(`and: ${value1 && value2 && check()}`);
// && is often used to compress long if-statement
// nullabelObeject && nullableObject.something
// if(nullabelObeject != null){
//     nullableObject.something;
// }

// 7. Equality
// == loose equality : with type conversion
// === strict equality : no type conversion
// object 에서 주의

const ellie1 = {name: 'ellie'};
const ellie2 = {name: 'ellie'};
const ellie3 = ellie1;

console.log(ellie1 == ellie2); // false
console.log(ellie1 === ellie2); // false
console.log(ellie1 == ellie3); // ture


8. Conditional operators : if
if, else if, else
const name = 'don';
if(name === 'ellie'){
    console.log('Welcom Ellie!');
} else if (name === 'coder') {
    console.log('Welcom Coder!');
} else {
    console.log('who are you')
};

9 Ternary operator: ? - 간단한 경우에 활용 권장 / 복잡한 건은 switch 활용 가능
condition ? value1 : value2;
console.log(name ==='don' ? 'yes' : 'no'); // 앞의 조건문이 true일 경우 'yes'를, 아닐 경우 'no'를 실행

 
10. Switch statement - if문에서 else if를 반복하는 경우 좋음
use for multiple if checks
use for enum-like value checks
use for multiple type checks in TS
const browser = 'IE'
switch (browser) {
    case 'IE':
        console.log("Go away!");
        break;
    case 'Chrome':
    case 'Firefox':
        console.log("Thanks");
        break;
    default:
        console.log("Same all");
        break;
    }

11. Loops
1) While - ()안의 Status가 false 될 때까지
let i = 3;
while ( i > 0 ) {
    console.log(`while: ${i}`);
    i--;
}
do ~ while은 block scope 우선 실행
do {
    console.log(`do while: ${i}`);
    i--;
} while (i>0);
2) for - (begin ; condition ; step)
for ( let p = 3; p>0 ; p--){
inline variable declaration 블락 안에 지역 변수 선언하여 활용 가능
    console.log(`inline variable for: ${p}`);
}
3) nested loop - O(n2)
for (q = 3; q > 0 ; q--){
    for (j = 3; j > 0 ; j--){
        console.log(`${q}, ${j}`);
    }
}

* continue Quiz

for(let k = 0; k<11; k++ ){
    if(k%2 !== 0){
        continue
    }
    console.log(k)
}

* break Quiz
for(let k = 0; k<11; k++ ){
    if(k == 8){
        break
    }
    console.log(k)
}