holdanddeepdive/javascript-deep-dive

[용어정리] 챕터 4-9 용어 정리

Opened this issue · 0 comments

아직은 책이 용어쌓기 단계라 아직은 이해하고 대화할만한 내용은 없어보여요. 따라서 정리하고싶은 내용들 챕터당 5개 내외로 추려봤습니다. 👻

4장

호이스팅의 이유

변수 선언이 런타임 이전에 실행되기 때문에 발생

언매니지드/매니지드 언어

메모리 할당을 개발자 주도로 하는지/ 언어 차원에서 담당하는지

식별자

변수이름, 값을 구별해서 식별할 수 있는 고유한 이름

예약어

프로그래밍 언어에서 사용되고 있는 단어. 예) await, break, ....

5장

식(표현식-expression)이 평가(evaluate)되어 생성된 결과

리터럴

약속된 기호를 사용해 값을 생성해내는 표기법(notation)

표현식

값으로 표현될 수 있는 모든 문(statement)

- 구분법 : 변수에 할당해본다
var foo = var x;에러 : 표현식이 아닌 
var foo = x = 100;  표현식인 

문-statement

프로그램을 구성하는 기본 단위, 최소실행 단위

6장

템플릿 리터럴

ES6부터 도입된 문자열 표기법. 백틱` 을 사용해 멀티라인, 표현식삽입, 테그트 탬플릿 등 편리한 기능 제공

null 타입

유효하지 않은 값을 명시적으로 나타낼 때 사용

심벌 타입

변경불가능한 원시 타입

  • 값은 외부에 노출되지 않음
  • 다른 값과 절대 중복되지 않는 유일한 값

동적타입 언어

자바스크립트 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론)된다. 그리고 재할당에 의해 언제든 타입이 동적으로 변할 수 있다.

7장

문자열 연결 연산자

  • 연산자는 피연산자 중 하나 이상이 문자열인 경우 연결연산자로 작동

암묵적 타입 변환 / 타입 강제 변환

‘1’ + 2; // → ‘12’
‘1’ + true; // → 2

동등비교

== 값이 같음

일치비교

=== 값과 타입이 같음

NaN

NaN은 자신과 일치하지 않는 유일한 값. isNaN을 사용해야한다.

삼항 조건 연산자

// 삼항 조건 연산자는 표현식인 문.
var result = x % 2 ? ‘홀수’ : ‘짝수’;
// if ... else 문은 표현식이 아닌 문
var result = if (x % 2) { result =  ‘홀수’ } else { result = ‘짝수’}; // => error

typeof 연산자

typeof null은 "null”이 아닌 “object”로 나오는데, 버그다. 못 고치고 있지만, null의 타입은 “null”이어야 한다.

지수 연산자

**

8장

블록문

자바스크립트에서 하나의 실행 단위

폴스루

switch case 문에서 break가 없으면 끝날때까지 모든 case를 거쳐가는 것

레이블 문 - label statement

  • 식별자가 붙은 문
  • break문을 활용하면 레이블 문을 탈출할 수 있다.
outer: for (~) {
	for (~) {
		if (~) break outer;
	}
}

9장

명시적 타입 변환/ 타입 캐스팅

var x = 10;
var str = x.toString();

암묵적 타입 변환

var str = x + ‘’;
true + ‘’ // ‘true’
null + ‘’ // ‘null’

문자열 타입으로 변환

String(1)
(1).toString()
1 + ‘’

숫자 타입으로 변환

Number(1)
parseInt(1)
+ '0'
’0’ * 1

단축 평가

true || anything  true
false && anything  false

옵셔널체이닝

  • object가 null/undefined 일 때 object.value로 접근하면 에러 발생!
    object && object.value로 활용했었음.
// [문제]
var str = ‘’;
var length = str && str.length;
// length = ‘’
// [해결]
var length = str?.length;

null 병합연산자

// [문제]
var foo = ‘’ || ‘default string’;
// foo = ‘default string’
’’도 유효한 값일  있는데 할당이 안됨.
// [해결]
var foo = ‘’ ?? ‘default string’
// foo = ‘’