
5장 - 표현식과 문
용어 정리
- 값(value) - 식(표현식 expression)이 평가(evaluate)되어 생성된 결과
- 변수(variable)
- 하나의 값을 저장하기 위해 확보한 메모리 공간
- 그 메모리 공간을 식별하기 위해 붙인 이름
- 리터럴(literal)
- 사람이 이해할 수 있는 문자
- 약속된 기호를 사용해 값을 생성하는 표기법
리터럴 종류 예시 비고 정수 리터럴 100 부동소수점 리터럴 10.5 2진수 리터럴 0b01000001 0b로 시작 8진수 리터럴 0o101 ES6에서 도입. 0o로 시작 16진수 리터럴 0x41 ES6에서 도입. 0x로 시작 문자열 리터럴 'Noah' "World" 불리언 리터럴 true false null 리터럴 null undefined 리터럴 undefined 객체 리터럴 { name: 'Noah', address: 'Seoul' } 배열 리터럴 [ 1, 2, 3 ] 함수 리터럴 function() {} 정규 표현식 리터럴 /[A-Z]+/g
- 표현식(expression)
- 값으로 평가 될 수 있는 문(statement)이다.
- 표현식이 평가되면 새로운 값을 생성하거나, 기존 값을 참조
Ex) var score = 100;
-> 값으로 평가될수 있는 문은 모두 표현식
- 함수, 메서드 호출도 표현식이 될 수 있다.
표현식과 표현식이 평가된 값은 동등한 관계, 동치(equivalent)이다.
1+2=3 -> 1+2가 평가되어 3을 생성.
-> 문법적으로 값이 위치 할 수 있는 자리에는 표현식도 위치 할 수 있다.
- 문(statement)
- 프로그램을 구성하는 기본단위이자 최소실행단위
- 문은 여러 토큰(token)으로 구성된다.
- 문의 종류 : 선언문, 할당문, 조건문, 반복문 등
- 표현식 & 표현식이 아닌 문
- 구별 방식 : 변수에 할당해보면 알 수 있다.
ex) var a; -> 변수 선언문은 표현식이 아닌 문
a = 100; -> 할당문은 그 자체가 표현식이지만, 완전한 문이기도 함
- 즉, 할당문은 표현식인 문이다.
var foo = a = 100; 가능!
6장 - 데이터 타입
- js(ES6)는 7개 타입을 제공한다.
원시타입
1. 숫자
2. 문자열
3. 불리언
4. undefined
5. null
6. symbol
객체타입
7. 객체, 함수, 배열 등
1. 숫자 타입
- 숫자 타입은 배정밀도 64비트 부동소수수점 형식을 따름
-> 정수, 실수, 2,8,16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식으로 저장
2. 문자열 타입
'', "", ``으로 감싼 텍스트 데이터
3. 템플릿 리터럴 (ES6에 도입)
* 런타임에 일반 문자열로 변환되어 처리됨.
- 백틱으로 감싸진 문자열
1. 멀티라인 문자열
- 일반 문자열에서는 개행을 위해 이스케이프 시퀀스가 필요.
- 템플릿 리터럴에서는 시퀀스 없이 개행이 가능
2. 표현식 삽입
- 문자열은 + 를 이용해서 연결 가능
- 템플릿 리터럴은 표현식 삽입으로 연결 가능
ex)var first = 'hj' var last = 'noah' // 템플릿 리터럴 console.log('my name is ${first} ${last}');4. 심볼 타입
- 다른 값과 중복되지 않는 유일무이한 값
- 객체의 유일한 프로퍼티키를 만들기위해 사용함
- symbol 함수를 호출하여 생성
- 외부에 노출 X 유일무이한 값
Why? 데이터 타입은 왜 필요하지?
- 값을 저장할때 확보해야하는 메모리 공간의 크기를 결정하기 위해
- 값을 참조할때 한번에 읽어 들여야할 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽어들인 2진수를 어떻게 해석할지 결정하기 위해