jsNote 03: 연산, 반복문(operator, if, for loop)

Jieun·2021년 1월 7일
0

jsNote

목록 보기
3/13

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 2의 3승



3. Increment and decrement operators 증가/감소 연산

let counter = 2;
const preIncrement = ++counter;
//counter = counter +1;
//preIncrement = counter;
//(오른쪽 연산부터) counter에 1을 더해서 counter 값을 할당.
console.log(`preIncrement : ${preIncrement}, counter: ${counter}`); //3,3

const postIncrement = counter++; 
//postIncremenrt = counter;
//counter = counter +1;
//먼저 변수의 값을 postIncrement에 할당한 다음에 counter의 값을 증가시키는 것
console.log(`postIncrement : ${postIncrement}, counter: ${counter}`); //3,4

//마이너스도 마찬가지
const preDecrement = --counter;
console.log(`preDecrement : ${preDecrement}, counter: ${counter}`); //3,3

const postDecrement = counter--;
console.log(`postDecrement: ${postDecrement}, counter: ${counter}`); //3,2



4. Assignment operators 할당 연산

let x=3;
let y=6;
console.log(x += y); //x = x+y라는 코드에서 반복되는 x를 생략하는 것, 9
console.log(x -= y); //x = x-y, 3
console.log(x *= y); //x = x*y, 18



5. Comparison operators 비교 연산

console.log(10<6); //false
console.log(10<=6); //false
console.log(10>6); //true
console.log(10>=6); //true



6. Logical Operators : || (or), && (and), !(not)

const value1 = false;
const value2 = 4 < 2;

//|| (or) , 처음으로 true가 나오면 멈추기 때문에 무거운 operation일수록 뒤에 놓기
console.log(`or: ${value1 || value2 || check()}`); //or: true

//&& (and), 처음 false가 나오면 멈춤. or과 마찬가지로 heavy한 operation일수록 뒤에 놓기
console.log(`and: ${value1 && value2 && check()}`); //and: false

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

// ! (not)
console.log(!value1); //true



7. Equality

const stringFive = '5';
const numberFive = 5;

// == loose equality, with type conversation 느슨한 equality, 타입 변환 포함
console.log(stringFive == numberFive); //true
console.log(stringFive != numberFive); //false

// === strict equality, no type conversion 엄격한 equality, 타입 변환 없음
console.log(stringFive === numberFive); //false
console.log(stringFive !== numberFive); //true

//object equality is by reference 
//즉, object는 메모리에 탑재될 때 reference(주소)로 저장되기 때문에 emma1과 emma2는 똑같은 데이터가 들어있는 object지만 다른 reference가 들어있다
//emma3은 emma1의 레퍼런스를 가르킨다
const emma1 = { name:'emma', age:3 };
const emma2 = { name:'emma', age:3 };
const emma3 = emma1;
console.log(emma1 == emma2); //false
console.log(emma1 === emma2); //false
console.log(emma1 === emma3); //true

//equality puzzler
console.log(0 == false); //true
console.log(0 === false); //false (0은 boolean 타입이 아니기 때문)
console.log('' == false); //true
console.log('' === false); //false (''은 boolean 타입이 아니기 때문)
console.log(null == undefined); //true
console.log(null === undefined); //false



8. Conditional operator : if, else if, else

const name = 'coder';
if(name === 'emma'){
    console.log('Welcome, Emma!');
}else if(name === 'coder'){
    console.log('You are amazing coder');
}else {
    console.log('unknown');
} //You are amazing coder



9. Ternary operator : condition ? value1 : value2 (앞에 물음표를 붙여 if문을 간단하게 쓰는 연산)

console.log(name === 'coder' ? 'yes' : 'no'); //yes



10. Switch statement 스위치문

const browser = 'Chrome';
switch (browser){
    case 'IE':
        console.log('go away!');
        break;
    case 'Chrome':
    case 'Firefox':
        console.log('love you!');
        break;
    default:
        console.timeLog('same all!');
        break;
} //love you!



11. Loops : false가 나오기 전까지 무한대 출력

let i = 3;

while (i>0){
    console.log(`while: ${i}`);
    i--;
} //3, 2, 1 세 번 출력

//do while loop 먼저 블럭을 실행한 다음에 조건이 맞는지 아닌지 확인하는 것
do{
    console.log(`do while: ${i}`);
    i--;
} while(i>-2); //0, -1

//for loop, for(begin; condition; step)
for(i = 3; i>0; i--){
    console.log(`for:${i}`);
} //3, 2, 1

for(let i = 3; i>0; i = i-2){
    console.log(`inline variable for: ${i}`);
} //3, 1

//nested loop 중첩 반복문
for(let i = 0; i < 10; i++){
    for(let j = 0; j < 10; j++){
        console.log(`i: ${i}, j:${j}`);
    }
} //i=0, j=0~9 부터 i=9, j=0~9 까지

//break(끝내는 것), continue(지금 것만 skip하고 다음 걸로 진행)

//Q1, 숫자 0부터 10까지 짝수만 프린트 (continue 쓰기)
for(let i=0; i<11; i++){
    if(i%2 !== 0){
        continue;
    }
    console.log(`i: ${i}`);
}

//Q2, 숫자 0부터 10까지 프린트하는데 8을 만나면 break
for(let i=0; i<10; i++){
    console.log(`i: ${i}`);
    if(i==8){
        break;
    }
} //8까지 출력



0개의 댓글

관련 채용 정보