JS 기초 문법 (2)

노승현·2024년 7월 2일

내일배움 사전캠프

목록 보기
15/38

4. 불리언 연산

Truthy한 값은 true로 평가, Falsy한 값은 false로 평가되는 연산 방식을 말한다.

자료형 중에 항상 Truthy로 판단되는 자료형이 존재한다. ★★★
바로 Array(배열)과 Object(객체)다.

JS에서는 배열과 객체는 항상 Truthy 값을 가진다. 빈 배열이나 빈 객체도 포함해 배열과 객체는 조건문에서 true로 평가된다. 이 특징은 JS의 중요한 부분, 배열이나 객체가 존재하는지 여부를 쉽게 확인할 수 있게 해준다.

배열과 객체가 Truthy인 이유: 배열과 객체가 기본적으로 메모리에 할당된 주소를 가지기 때문에, 빈 배열이나 빈 객체도 undefined나 null이 아닌 유효한 값으로 간주된다. 그러므로 조건문에서 항상 true로 평가된다.
그래서 배열이나 객체의 존재 여부 확인할 때 truthy/falsy 체크를 사용할 수 있지만, 배열이 비어있는지, 객체에 키가 있는지 확인하려면 추가적인 방법을 사용해야 한다.

다른 자료형을 가진 값에 강제로 불리언 연산을 적용하려면 Boolean 함수를 사용할 수 있다.
Boolean('String')=true
Boolean(' ')=false
Boolean(undefined)=false

Truthy와 Falsy
JS에서 Boolean 값으로 평가될 수 있는 모든 값은 Truthy 또는 Falsy로 구분된다.

  • Truthy: Boolean 값으로 true로 평가되는 값
    -> Boolean(1), Boolean("hello"), Boolean([]), Boolean(function(){})
  • Falsy: Boolean 값으로 false로 평가되는 값
    -> false, 0, '0', " "(빈 문자열), null

5. 조건문

조건문은 조건이 충족할 때만 특정 구문이 실행하도록 할 경우에 사용한다.
프로그래밍에서 논리적인 로직을 표현할 때 가장 중심이 되는 구문으로, 조건문을 프로그래밍의 꽃이라고 해도 과언이 아니다.

조건에 들어가는 값은 항상 Boolean 연산 적용됨

if... else문 if (condition) else

if... else + Block
if (condition){ }
else { }
조건에 대해 여러 명령문 묶어 실행하기 위해서는 반드시 block으로 묶어야 한다. block은 항상 사용해도 문제가 없다. 그리고 가독성 위해 항상 사용하는 것을 일반적인 규칙으로 두는 회사도 있다.

if... else문 chaining
if (condition1) { }
else if (condition2) { }
else (condition3) { }

※ 이 외에 삼항 연산자, switch문 등의 조건문 있지만 표현 상 차이일 뿐 모두 if 문으로 처리가 가능하다.


6. 논리 연산자

주로 조건을 결합하거나 논리적인 결정을 내리는 데 사용된다.
주요 논리 연산자는 &&, ||, !가 있다.
&&- AND 연산자: 두 조건이 모두 참일 때 'true'를 반환하고 두 개 조건 중 하나라도 거짓이면 'false'를 반환한다.
||- OR 연산자: 두 조건 중 하나라도 참이면 'true를 반환하고 두 개 조건 모두 거짓일 경우 'false'를 반환한다.
!- NOT 연산자: 피연산자의 Boolean 값을 반전시킨다. 'true'는 'false'로, 'false'는 'true'로 변환된다.


7. 반복문

모든 반복문은 기본적으로 특정 구문을 반복할 때 사용한다.
기본적인 반복문은 for 문으로
모든 for문은 조건문 위치에 있는 값이 Truthy한 경우 계속 반복된다.
조건이 처음부터 만족하지 않는다면 반복문은 실행되지 않는다.
기본적인 for 문의 구조 - for (초기화구문; 조건문; 증감문)

  • 초기화 구문: for문 안에서만 사용될 변수 선언
  • 조건문: 조건문에 있는 값이 Falsy한 경우 명령문 반복 중단
  • 증감문: 구문 끝나는 경우 증감문에 선언된 구문 실행됨

반복문은 if문 처럼 Block을 사용 가능하다.
반복문을 제어하는 다른 방법- 일반적으로 반복문이 중단되려면 조건문의 값이 falsy값이 나와야 한다. 이 방법을 제외하고 반복문을 벗어나거나 무시하기 위한 다른 방법이 존재한다. 바로 break문continue문이다.

break문- 조건 상관 없이 반복문 중단하기 위한 키워드
continue문- 조건 상관 없이 해당 명령문 중단, 바로 다음 단계인 증감문부터 실행


8. 연습문제

변수를 선언할 때 값을 할당하지 않으면 어떤 값이 출력되는가?

  • 변수 값은 undefined, 변수 타입은 "undefined"가 된다.

선언되지 않은 변수를 참조하면 어떻게 되는가?

  • Reference error가 발생한다.

배열이 기본으로 제공해주는 함수들이 있다. 이 중 원하는 데이터를 필터링 해주는 함수는?

  • Array.prototype.filter()

0개의 댓글