[JS] 조건문/ 비교연산자/ 논리연산자/ falsy

아임 레조·2020년 8월 21일
0

STUDY

목록 보기
5/34
post-thumbnail
  • truthy와 falsy가 조건문에서 작동하는 방식을 이해할 수 있다.
  • 논리 연산자에 대해 이해할 수 있다.
  • if 와 else if , else를 이해하고 무리없이 활용할 수 있다.
  • 복잡한 조건문을 활용하여 실생활에서 쉽게 마주할 수 있는 문제를 해결할 알고리즘을 짤 수 있다.

조건문(Conditional)

어떠한 조건을 판별하는 기준을 만드는 것이다. 예를 들어, 학생이냐 아니냐의 판단을 학교에 다니느냐 아니냐라는 기준으로 판별하는 것처럼 기준을 자바스크립트의 코드로 작성해주는 것이 조건문에 해당한다. 조건문을 공부하기 위해서는 Boolean과 비교연산자(Comparison Operator)에 대한 이해가 필요하다.

비교연산자(Comparison Operator)

>(초과), < (미만), >=(이상), <=(이하), ===(같다), !==(다르다)   

비교의 결과는 항상 true 아니면 false(Boolean)이 된다.
예를 들어서,

5>7 ;// false
'Sunny' !== 'Cloudy' // true 

참고)

= (equal operator) 
a = b, b를 a에 대입, 지금부터 a가 b라고 약속한다, 할당한다 

== 
a == b, '값'이 같은지 판단하고 같으면 true, 다르면 false 

=== 
a === b, '값'과 '타입' 둘다 같은지 판단하고 같으면 true, 다르면 false  

1== '1'은 true 
1 === '1'은 false ('1'은 string으로 타입이 다르기 때문에) 
따라서 == 와 ===, != 와 !== 를 혼동해서 사용하지 않도록 주의해야 한다. 

조건문 만드는 법

if(조건1: Boolean){조건1이 통과할 경우
 }else if{조건1은 통과되지 않고 조건 2가 통과되는 경우
 }else{모든 조건이 통과되지 않는 경우
 } 

논리연산자(Logical Operator)

만약 조건이 한가지가 아니라 여러가지라서 이를 한번에 적용해야 하는 경우에는 조건문을 중첩해서 사용을 해도 되지만 좀더 세련되게 논리연산자를 사용해 준다.

and 연산자: &&  
 true && true // true 
 true && false // false 
 Falsy && Falsy // false
 
or 연산자: ||
 true || true // true 
 true || false // true 
 falsy || falsy // false 
 
not 연산자: ! (truthy, falsy 여부를 반전시켜준다)
 ex) !undefined; // true (undefined는 falsy로 취급) 
     !'wow'; // false (string은 항상 truthy 취급) 

Falsy로 취급되는 6가지 값

아래의 6가지 값은 false로 취급되기 때문에 조건문이 실행되지 않는다. 이 6가지를 제외하고는 모두 truthy하다.

  1. if(falsy)
  2. if(null) : null은 값이 없다는 의미
  3. if(undefined) : undefined는 정의되지 않았다는 의미(null과 값은 같게 취급)
  4. if(0) : 컴퓨터에서 0은 꺼진 것
  5. if(NaN) : NaN은 nother number라는 키워드
  6. if('') : 빈 string(아무런 값이 없는 문자열)

알고리즘과 pseudocode(의사코드)

알고리즘은 어떤 문제를 해결하기 위한 절차를 만들어 내는 과정, 혹은 형태를 말한다. 어떤 문제를 풀어야할 때 큰 문제를 잘게 분해하고, 절차를 추론해 내며, 반복되는 패턴을 찾는 일련의 과정을 연습할 필요가 있다.
문제를 풀기 전에, 그 과정을 하나하나 pseudocode(의사코드)로 적어낼 수 있다. pseudocode란 프로그램의 절차 하나하나를 우리가 실제로 사용하는 일반적인 언어를 이용해서 작성하는 방법을 말한다. 일반적인 언어는 실제 컴퓨터가 알아들을 수 있는 언어가 아니기 때문에 실행할 수 있는 코드는 아니다. 하지만 코딩을 하기 전에 어떻게 프로그램이 작동하는지 흐름을 파악할 수 있다.

profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

0개의 댓글