데이터 타입
- 자바스크립트의 모든 값은 데이터 타입을 갖는다.
- 원시 타입과 객체 타입으로 구분한다.
- 원시 타입
- 숫자(number)
- 문자열(string)
- 불리언(boolean)
- undefined: 선언되었으나 값이 할당되지 않았다.
- null: 변수에 값이 없다는 것을 의도적으로 명시하기 위해 사용한다. 변수가 이전에 참조하던 값을 더 이상 참조하지 않는다는 의미다.
- 심벌(symbol) 타입: 변경 불가능한 원시 타입의 값이다., ES6에서 추가된 타입이다.
- 객체 타입: 객체, 함수, 배열 등
숫자(number) 타입
- C, Java의 경우에는 소수점 이하가 있는 숫자(실수), 소수점 이하가 없는 숫자(정수)를 구분해서 double, float 같은 숫자타입을 제공한다.
- 이와 다르게 JavaScript에서는 숫자 타입이 하나만 존재한다.
- JavaScript에서는 모든 숫자를 실수로 처리한다.
문자열(string) 타입
- 텍스트 데이터를 나타내는 데 사용한다.
- 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 전 세계 대부분의 문자를 표현 가능하다.
- 작은따옴표('')내의 큰따옴표("")는 문자열로 인식되고 반대로 큰따옴표 내의 작은 따옴표도 문자열로 인식된다.
템플릿 리터럴
- ES6부터 템플릿 리터럴이라는 새로운 문자열 표기법이 도입되었다.
- 멀티 라인 문자열, 표현식 삽입, 태그드 템플ㄹ시 등 편리한 문자열 처리 기능을 제공한다.
- 일반 문자열과 다르게 템플릿 리터럴 내에서는 이스케이프 시퀀스를 사용하지
이스케이스 시퀀스(escape sequence)
- \0: NULL
- \b: 백스페이스
- \f: 폼 피드(Form Feed), 프린터로 출력할 경우 다음 페이지의 시작 지점을 이동한다.
- \n: 개행(Line Feed), 다음 행으로 이동한다.
- \r: 개행(Carriage Return), 커서를 처음으로 이동
- \t: 탭(수평)
- \v: 탭(수직)
- \uXXXX
- \': 작은따옴표
- \": 큰따옴표
- \\: 백슬래시
데이터 타입의 필요성
- 데이터 값을 저장하려면 확보할 메모리 공간의 크기를 결정해야한다.
- 값을 참조할 때 한 번에 읽어들여야 할 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽어들인 2진수를 어떻게 해석할지 결정하기 위해서
- Ex) 0100 0001 는 65인데 이는 숫자 65 일 수도 있고 문자 'A'일 수도 있다.
정적 타입 언어와 동적 타입 언어
- 정적 타입 언어(static/strong type): 변수를 선언할 때 변수에 할당할 수 있는 값의 종류나 타입을 선언해야한다.
- 컴파일 시점에 타입 체크한다. 타입의 일관성을 강제함으로써 런타임에 발생하는 에러를 줄인다.
- Ex) C, Java
- 동적 타입(dynamic/weak type) 언어: 선언이 아닌 할당에 의헤 타입이 결정된다.
- 동적 타이핑(dynamic typing): 재할당에 의해 변수의 타입을 항상 동적으로 변할 수 있다.
- Ex) JavaScript, Python, PHP, Ruby, Lisp, Perl
- 유연성은 높지만 신뢰성은 떨어진다.
변수 생성 시 주의 사항
- 꼭 필요한 경우 제한적으로 사용
- 변수의 유효 범위(스코프)는 최대한 좁게 만들어서 변수의 부작용을 억제한다. 넓을수록 오류 발생 확률이 높아진다.
- 전역 변수는 최대한 사용하지 않는다.
- 변수보다는 상수를 사용해서 값의 변경을 억제한다
title
- con
- con
title
- con
- con
출처 - 「모던 자바스크립트 deep dive」 -이웅모
'FrontEnd > 모던 자바스크립트 deep dive' 카테고리의 다른 글
Chapter 04. 변수 (0) | 2023.10.01 |
---|---|
Chapter 03. 자바스크립트 개발 환경과 실행 방법 (0) | 2023.09.28 |
Chapter 01. 프로그래밍 Chapter 02.자바스크립트란? (0) | 2023.09.28 |