8장 제어문

 

8.1 블록문

0개 이상의 문을 중괄호로 묶은 것 { }

 

 

8.2 조건문

자바스크립트는 if...else 문과 switch 문이 있음

 

if문은 참, 거짓에 따라 코드를 실행,

switch문은 다양한 상황(case)에 따라 코드를 실행.

 

8.3 반복문

자바스크립트는 for문, while문, do...while 문을 제공함

 

for문은 반복횟수가 명확할 때 주로 사용, while문은 반복 횟수가 불명확할 때 주로 사용

do while문은 코드 블록을 먼저 실행하고 나서 조건식을 평가함. (그러므로 적어도 1번이 실행됨)

 

8.4 break문

레이블 문(식별자(이름)가 붙은 블록문), 반복문, switch문의 코드 블록을 탈출할 때 사용

 

8.5 continue문

반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행흐름을 이동시킨다.

반복문을 탈출하는 것은 아님.

 

 

9장 타입 변환과 단축 평가

 

9.1 타입 변환이란?

개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.

 

개발자의 의도와 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라 한다.

 

9.2 문자열 타입으로 변환

값에 빈 문자열을 더해주면 문자열로 변환됨

 

9.2.2 숫자 타입으로 변환

산술 연산자와 비교 연산자가 있으면 값을 숫자 타입으로 암묵적 타입 변환을 시도하게 됨

1 - '1' // 0

1 * '10' // 10

1 / 'one' // NaN

 

값 앞에 + 단항 연산자를 붙이면 숫자 타입으로 암묵적 타입 변환을 수행함

 

+'' // 0

+'0' // 0

+'1' // 1

+'string' // NaN

 

+true // 1

+false // 0

 

+null // 0

 

+undefined // NaN

 

 

9.2.3 불리언 타입으로 변환

!! 붙이면 boolean으로 변환됨

 

불리언 타입으로 암묵적 타입 변환할 때, Truthy 값(참으로 평가되는 값), Falsy 값(거짓으로 평가되는 값)으로 구분함

 

Falsy 값은 다음과 같음

- False, undefined, null, 0, NaN, ''(빈 문자열)

 

Falsy 값을 제외한 모든 값은 true로 평가되는 Truthy 값이다.

 

 

9.3.1 문자열 타입으로 변환

 

- String 생성자 함수를 사용

String(1); // "1"

String(NaN); // "NaN"

String(true); // "true"

 

- toString() 메서드 사용

(1).toString(); // "1"

(NaN).toString(); // "NaN"

 

- 문자열 연결 연산자를 이용

1 + ''; // "1"

NaN + ''; // "NaN'

 

9.3.2 숫자 타입으로 변환

- Number 생성자 함수를 사용

Number("0"); // 0

Number("-1"); // -1

 

- parseInt, parseFloat 함수 사용(문자열만 변환 가능)

parseInt('0'); // 0

parseInt('-1'); // -1

parseFloat('10.53'); // 10.53

 

- 단항 산술 연산자(+)를 이용

+'0'; // 0

 

- * 산술 연산자를 이용

'0' * 1; // 0

'10.53' * 1; // 10.53

 

9.3.3 불리언 타입으로 변환

- Boolean 생성자

Boolean('x'); // true

Boolean(''); // false

Boolean({}); (객체타입) // true

Boolean([]); (객체타입) // true

 

- !! 를 붙이기 

!!'x'; // true

 

 

9.4 단축 평가

9.4.1 논리 연산자를 사용한 단축 평가

논리곱 연산자(&&)는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환하고,

논리합 연산자(||)는 두 개의 피연산자중 하나만 true로 평가되어도 true를 반환한다.

 

논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는 것을 단축 평가라고 한다.

즉, 평가 결과가 확정되면 나머지 평가 과정을 생략하는 것을 말한다.

 

ex)

true || anything  -> true (이미 true니까)

false || anything -> anything (anything이 결정자니까)

true && anything -> anything (anything이 결정자니까)

false && anything -> false (이미 false니까)

 

 

단축 평가를 사용해 에러를 방지하거나, 기본값을 설정할 수 있음(p.121 참조)

 

9.4.2 옵셔널 체이닝 연산자 (.?)

 

var elem = null;

var value = elem?.value; // elem이 null 또는 undefined이면 undefined를 반환하고, 그렇지 않으면 우항의 값을 참조

 

 

+ Recent posts