JS/드림코딩앨리

4. 코딩의 기본 operator, if, for loop

배워도끝이없네 2021. 4. 21. 10:07
// 1. String concatenation
console.log('my'+ 'cat'); //문자열과 문자열을 합쳐서 새로운문자열
console.log('1'+2); //숫자와 문자열을 합쳐서 숫자계산
console.log(`string literals : 1+2 = ${1+2}`); 

//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; //전위연산자
//counter = counter + 1;
//preIncrement = counter;
console.log(`preIncrement : ${preIncrement}, counter : ${counter}`);
const postIncrement = counter++;
// postIncrement = counter;
//counter = counter +1;
console.log(`postIncrement : ${postIncrement}, counter : ${counter}`);


//4. Assignment operators 할당하는 operator
let x = 3;
let y = 6;
x += y; //x = x+y;
x -= y; 
x *= y;
x /= y;


//5. Comparison operator (비교연산자)
console.log(10 < 6); //less than
console.log(10 <= 6); 
console.log(10 > 6); 
console.log(10 >= 6); 

//6. Logical operators : || (or), &&(and), !(not)
const value1 = false;
const value2 = 4 < 2; //false

//||(or) , or 연산자는 하나라도 트루면 멈춘다
console.log(`or: ${value1||value2||check()}`); //이런 연산이 필요한 무거운 함수는 뒤쪽에 놓아야 좋다.

// &&(and), 하나라도 false면 멈춤
console.log(`and: ${value1&&value2&&check()}`);

function check(){
    for(let i = 0 ; i <10 ; i++){
        //wasting time
        console.log('OMG');
    }
    return true;
}

//7. Equality
const stringFive = '5';
const numberFive = 5;

// == loose equality, with type conversion 
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);

// === strict equality, no type conversion
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive); //왠만하면 stric equality를 사용하자!

//오브젝트의 equality by reference
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); //true

//8. Conditional operator : if
//if , else if , else
const name = 'coder';
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 statement
//use for multiple if checks
// use for enum-like value check
//use for multiple type check in TS
const borwser = 'IE';
switch(borwser){
    case 'IE':
        console.log('go away!!');
        break;
    case 'chrome':
        console.log('love you!');
        break
    case 'Firefox':
        console.log('love you!'); //이렇게 똑같은 결과물을 출력할때는 case를 붙여서 쓸수 있다.
        break;
    default:
        console.log('same sll');
        break;
}

// 11.Loops
// while loop, while the condition is truthy
// body cod is excuted
let i = 3;
while (i>0){
    console.log(`while:${i}`);
    i--
}

//do while loop, body code is executed first,
//then check the condition.
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--){
    //inline variable declaration
    console.log(`inline variable for: ${i}`);
}

//break (loop 완전 종료), continue (이번스탭은 스킵하고 다음스탭으로 넘어가는것) // 
for(let j = 0 ; j<11 ; j++){
    if(j%2===1){
        continue;
    }
    console.log(j);
}

for(let j = 0 ; j<11 ; j++){
    if(j===8){
        break;
    }
    console.log(j);
}
​