ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript] 기초문법2 (+ 연산자, 증가, 감소, 비교, 논리, 조건문)
    React 2022. 10. 9. 11:25

    연산자

    %는 나머지 값을 출력할 때 사용한다. 특정 숫자를 2로 나눴을 때 나머지가 1이면 홀수, 0이면 짝수임을 알 수 있다. 그리고 어떤 값보다 작은 수만 출력하고 싶다면, 그 숫자로 나눠서 나올 수 있는 나머지 값들을 구하면 된다. 예를 들어 a%5를 하면, 0~4까지의 수만 나머지가 될 수 있다는 걸 알 수 있다.

    **를 쓰면 거듭제곱을 의미한다. 2**3 은 2*2*2 로 결과값은 8 이다.

     

    a+=1, a-=1, a*=2, a%=2 처럼 연산자를 줄여서 사용할 수도 있다.

    let a=5;
    a+=1;
    console.log(a) //6
    a-=2
    console.log(a) //4
    a*=2
    console.log(a) //8
    a/=2
    console.log(a) //4
    a%=2 //나머지
    console.log(a) //0

     

    증가 연산자, 감소 연산자

    let a=10;
    a++
    ++a
    console.log(a); //12
    
    let b=10;
    b--
    --b
    console.log(b); //8
    
    let c=10;
    let num1=c++;
    console.log(num1); //10
    
    let d=10;
    let num2=++d;
    console.log(num2); //11

    변수에 ++ 붙이면 1이 증가하고, --를 붙이면 1이 감소하게 된다. 바로 다른 변수에 대응시킬 때는, 반드시 ++를 변수 앞에 붙여야 증가된 후의 값이 대응된다. 뒤에 붙이면 증가하기 전의 값이 대응된다.

     

     

    비교 연산자

    a=3 처럼 =을 하나만 쓰면 변수에 값을 대응시키는 의미이므로, '같은지' 비교할 때는 == (동등 연산자) , '다른지' 비교할 때는 != 를 사용한다. 이때 참이면 True, 거짓이면 False가 출력된다.

     

    그런데 == 로 숫자형과 문자형을 비교하면 포함하고 있는 값이 같을 뿐인데 True로 출력된다. 따라서 데이터 타입까지 완벽하게 비교하기 위해서는 3번 써서 ===(일치 연산자)로 사용해야 한다. 가급적 ===으로 써서 타입까지 비교하는 것이 좋다.

    let a=10;
    let b='10';
    console.log(a==b); //true
    console.log(a===b); //false

     

    조건문

    if 문 ( )안의 조건은 항상 True 또는 False로 전환된다. 따라서 if문은 주어진 조건이 True이면, 중괄호 안의 동작을 실행한다. else절을 추가해서, 주어진 조건이 False일 때 실행할 동작도 지정할 수 있다.

    그리고 else if 를 추가하면 새로운 조건이 True가 될 때 실행할 동작을 추가할 수 있다.

    const a=12; //만나서 반갑습니다.
    if(a<10){
        console.log('안녕하세요.');
    }else if(a===12){
        console.log('만나서 반갑습니다.')
    }else{
        console.log('조심히 가세요.');
    }

     

    논리 연산자

    || (or) 는 여러 개 중 하나라도 True이면, True를 반환한다. 모든 값이 False일때만 False를 반환한다.

    && (and) 는 모든 값이 True일때만 True를 반환한다. 하나라도 False이면, False를 반환한다.

    ! (not) 은 True와 False를 서로 반대로 바꿔주는 역할이다. 예를 들어, !True 는 False이다.

    const age = prompt('나이가 어떻게 되세요?'); //20
            const isAdult=age>19; //True
            if(!age){ //False면 여기
                console.log('어른이 아닙니다.')
            }else{ //True면 여기
                console.log('어른입니다.')
            }

    or 은 아무리 여러 가지 조건을 작성해도, 첫번째 True를 발견하는 즉시 평가를 멈춘다. 즉, 첫번째 True인 조건 다음에 나오는 조건들은 읽어보지 않는다. 마찬가지로 and 도 첫번째 False를 발견하는 즉시 평가를 멈춘다. 

    따라서 조건문을 작성할 때 간단한 작업에서 복잡한 작업 순으로 나열하는 것이 좋다. 또한 더 많은 데이터를 걸러낼 수 있는 조건부터 나열한다면, 처리 속도를 눈에 띄게 줄일 수 있다.

     

    논리 연산자에서 || 은 && 보다 우선적으로 실행된다. 

    //남자이고, 이름이 Mike이거나 성인이면 통과이다.
    const gender='F';
    const name='Jane';
    const isAdult=true;
    
    if(gender==='M' && name==='Mike' || isAdult){
        console.log('통과입니다.')
    }
    //통과입니다.

    그래서 name==='Mike' || isAdult

    이 문장이 먼저 평가되어 버렸고, || 은 하나라도 true이면 true를 반환해주기 때문에 조건은 true가 된다.

    따라서 원하는 대로 평가되게 하고 싶다면 ( )로 감싸주어야 한다.

    //남자이고, 이름이 Mike이거나 성인이면 통과이다.
    const gender='F';
    const name='Jane';
    const isAdult=true;
    
    if(gender==='M' && (name==='Mike' || isAdult)){
        console.log('통과입니다.')
    }else{
        console.log('통과하지 못했습니다.')
    }
    // 통과하지 못했습니다.

     

     

     

     

    외부 참조 링크

    https://www.youtube.com/watch?v=KF6t61yuPCY 

     

    댓글

Just do Justin