하얀 코딩

[JavaScript - 3] 연산자 / Boolean / 조건문 (if / else if / else) 본문

JavaScript

[JavaScript - 3] 연산자 / Boolean / 조건문 (if / else if / else)

whitecoding 2022. 10. 24. 18:55

연산자

술, 증감 연산자

 

  • +, -, *
  • ++, --, **
  • / : 몫
  • % : 나머지

비교 연산자

 

  • === : 같다.
  • !== : 같지 않다.
  • <, >, <=, >=

논리 연산자

 

  • && (그리고) : 모두가 참일 때 참
  • || (또는) : 모두가 거짓일때 
  • ! (부정) : 해당 논리값의 반대 논리값을 반환

다음 밑 예제문이 어떠한 출력 값인지 생각해보자.

false && true
!false || !true
!unedfined
!(3>2)
!'hello'
false || true
!Boolean(anything) // anything 결과값이 거짓이면 참, 참이면 거짓

Falsy & Truthy

1.Falsy

거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 불리언 문맥에서 false로 평가되는 값입니다. 

false 키워드 false
0 숫자 zero
-0 음수 zero
0n BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름.
"" 빈 string
null null - 아무런 값도 없음
undefined undefined - 원시값
NaN NaN - 숫자가 아님

2.Truthy

Falsy한 값이 아니면 모두가 Truthy한 값이다. 이상하게 빈배열[]과 빈객체{}는 Truthy한 값이다;;


JS 연산자 순위(비트 연산자 제외)

이것 저것 연산자를 혼용해서 쓰다보면 원하지 않는 값을 얻을 수 있다. 우리가 알고 있는 수학이랑 비슷한 개념으로 이루어진다.

순위 기능 연산자
1 괄호 ()          
2 증감/논리 연산자 not ++ -- ** !    
3 산술 연산자 곱셈 * / %      
4 산술 연산자 덧셈 + -        
5 비교 연산자 대소 < <= > >=    
6 비교 연산자 같음 == === != !==    
7 논리 연산자 and &&          
8 논리 연산자 or ||          
9 대입 연산자 = += -= *= /= %=

if / else if / else

다음 밑 예제문이 어떠한 출력 값인지 생각해보자.

function plusOrMinus(score) {
  const extra = score % 10;
  if (extra <= 2) {
    return '-';
  } else if (extra >= 8) {
    return '+';
  } else {
    return '';
  }
}

function convertScoreToGradeWithPlusAndMinus(score) {
  let grade;
  if (score > 100 || score < 0) {
    return 'INVALID SCORE';
  }
  if (score === 100) {
    return 'A+';
  }
  if (score >= 90) {
    grade = 'A';
  } else if (score >= 80) {
    grade = 'B';
  } else if (score >= 70) {
    grade = 'C';
  } else if (score >= 60) {
    grade = 'D';
  } else if (score >= 0) {
    grade = 'F';
  }

  if (grade !== 'F') {
    grade = grade + plusOrMinus(score);
  }
  return grade;
}