모던 자바스크립트 Deep Dive 6,7,8
6장 데이터 타입
자바스크립트에서 모든 값은 데이터 타입을 가짐
6.1 숫자 타입
- 모든 수를 실수로 처리하며 정수 표현용 데이터 타입이 없음 -> 정수 표시가 되도 실은 실수
- Infinity ,-Infinity , NaN 등이 있음 ( 대소문자 구분하니까 NaN)
6.2 문자열 타입
- 텍스트 데이터 표현
- 작은 따옴표, 큰 따옴표, 백틱 등으로 감싸면 됨
- 따옴표로 감싸지 않으면 공백 포함 못 시킴
- 원시 타입이며 변경 불가능한 값
6.3 템플릿 리터럴
- `` 백틱을 사용
- 개행이 허용됨
- 표현식 삽입시 ${} 를 통해 삽입 가능
6.4 불리언 타입
- true false 나타냄
6.5 undefined 타입
- var로 선언한 변수는 undefined로 초기화
- 변수 선언 시 초기화까지 빈 값으로 내버려두는 것이 아니라 undefined로 초기화 해둠
6.6 null 타입
- 변수에 값이 없다
- 더 이상 참조 하지 않는다.
6.7 심벌 타입
- 변경 불가능한 원시 타입 , 유일무이값
- 객체의 유일한 프로퍼티 키 만들 때 사용
6.9 데이터 타입 필요성
- 값을 저장할 때 확보할 메모리 크기 결정
- 값 참조할 때 한번에 읽을 메모리 크기 결정
- 메모리에서 읽은 2진수 해석방법 결정
6.10 동적 타이핑
- 자바스크립트는 변수 선언시 타입 정의를 하지 않고 var, let, const 키워드 사용해 변수 선언
- 어떤 데이터 값이라도 자유롭게 하당 가능
- 선언이 아닌 할당에 의해 타입이 결정
6.10.2 동적 타입 언어와 변수
- 언제든 변수 값 변경이 가능해 추적이 어렵
- 유연성은 높으나 신뢰성이 떨어짐
7장 연산자
하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산등을 수행하여 하나의 값으로 만든다
7.1 산술 연산자
- 피연산자 대상으로 수학적 계산 수행
- 계산이 불가능하면 NaN 반환
7.1.1 이항 산술 연산자
- 2개의 피연산자를 산술하여 연산
- 피연산자 자체 값을 변경하지 않음
7.1.2 단항 산술 연산자
- 산술 연산자 1개의 피연산자를 산술
- a- : 양수면 음수로 음수면 양수로 변경
: 숫자 형식 문자열을 숫자 / 불리언 ->숫자 / 문자열 -> nan
7.2 할당 연산자
- 피연산자의 결과를 좌항에 있는 변수에 할당
7.3 비교 연산자
- 좌항과 우항을 비교후 불리언 값으로 반환
7.3.1 동등 일치 비교연산자
- 동등비교와 일치비교가 있고 값만 확인하는가 그 타입까지 확인하는가의 차이
7.4 삼항 조건 연산자
- 조건이 true이면 첫번째 false이면 두번째 값을 사용
7.8 typeoof 연산자
- 피연산자의 데이터 타입을 문자열로 반환
- null의 경우 object로 반환하니까 주의 -> 비교시 typeof가 아닌 === 추천
7.9 지수 연산자
- 좌항을 밑 , 우항을 지수로 거듭제곱
- ex 3**2 =9
- ex Math.pow(3,2)=9
7.12 연산자 우선순위
7.13 연산자 결합 순서
8장 제어문
- 조건에 따라 코드 블록을 실행하거나 반복
8.1 블록문
- 0개 이상의 문을 중괄호로 묶은 것
- 하나의 실행 단위
- 블록문의 끝에는 ; 붙이지 않음
8.2 조건문
- 주어진 조건식의 평가 결과에 따라 실행을 결정
8.2.1 if..else 문
- 참과 거짓에 따라 해당 문 실행
- 조건식은 무조건 불리언 값으로 평가되어야함
8.2.2 switch문
- 표현식의 값에 따라 case문이 실행
- 해당 되는 case문이 없다면 default로 실행
- 각 case마다 break;가 없다면 해당 case 실행후 계속 밑의 case가 실행됨
8.3 반복문
- 조건식이 참일 경우 해당 조건식이 거짓이 될때까지 반복
8.3.1 for문
- 조건식이 거짓이 될 때까지 블록을 반복
8.3.2 while문
- 반복문의 횟수가 불명확할 때 주로 사용
-
8.4 break문
- 레이블문,반복문,switchans 코드 블록을 탈출
8.5 continue
- 블록 실행을 현 지점에서 중단하고 다시 반복문의 상단으로 이동
- 탈출을 하진 않음