강의 노트/JS

[JS deep dive] 데이터 타입

매망쩔 2023. 3. 21. 11:24

데이터타입 : 값의 종류

ES6에선 7개의 데이터 타입을 제공하면 원시 타입과 객체 타입으로 분류과 된다

원시타입 : 숫자, 문자열, 불리언, undefined, null, 심벌

객체 타입 :  객체, 함수 , 배열

 

숫자 타입

배정밀도 64비트 부동 소수점 형식을 따름 

2진수 8진수도 10진수로 해석됨, 모두 실수로 처리됨,  추가적으로 Infinity, -Infinity, Nan 값이 있음

 

문자열 타입

텍스트 데이터를 나타내는데 사용

'', "",  `` 으로 택스트를 감쌈 (식별자와 구분하기 위해서)

c와 자바랑 다르게 문자열 타입을 제공하고 원시타입이며 변경 불가능한 값임

 

탬플릿 리터럴

일반 문자열과 다르게 백틱으로 표현함

멀티라인 문자열, 표현식 삽입, 태그드 탬플릿등 문자열 처리 기능을 제공함

멀티라인 문자열 : 이스케이프 시퀸스 없이도 줄바꿈을 허용함

표현식 삽입 : 문자열 연산자를 사용하지 않고도 표현식 삽입을 통해 간단한 문자열 삽입 가능  `My name is ${name}}`

 

불리언 타입

true, false (s논리적 참 , 거짓을 나타냄)

 

undefined타입

개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값

 

null 타입

프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용

 

심벌 타입

변경 불가능한 원시 타입의 값으로, 다른 값과 중복되지 않는 윰일무이한 값

주로 이름ㅁ이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용 (Symbol() 함수를 호출해 생성)

 

객체 타입

자바스크립를 이루고 있는 거의 모든 것이 객체이다. 추후 원시 타입과 비교\

 

데이터 타입의 필요성 ??

 

1.데이터 타입에 의한 메모리 공간의 확보와 참조

2.데이터 타입에 의한 값의 해석

 

동적 타이핑

C나 자바는 정적 타입 언어 

>> 변수를 선언할 떄 변수에 할당할 수 있는 값의 종류, 즉 데이터 타입을 사전에 선언해야 함 이후 타입체크를 수행하여, 선언한 타입에 맞는 값만 할당 가능

 

자바스크립트의 경우에는  var, const, let을 통해 키 변수를 선언만할 뿐, 어떠한 데이터 타입의 값도 자유롭게 할당 가능

 

자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 경정(타입 추론)

재할당에 의해 변수의 타입은 동적으로 변할 수 있음 ( 동적 타이핑, 동적 타입)

 

유연성은 높지만 신뢰성은 떨어짐

 

이에 의해 변수 사용시 유의사항

변수는 꼭 필요한 경우에 한해 제한적으로 사용하기

변수의 유효 범위는 최대한 좁게 만들어 변수의 부작용을 억제해야 함

전역 변수는 최대한 사용하지 않도록 함

변수보다는 상수를 사용해 값의 변경을 억제함

변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍하기

 

 

 

'강의 노트 > JS' 카테고리의 다른 글

[JS deep dive]객체 리터럴  (0) 2023.03.27
[JS deep dive] 타입 변환과 단축 평가  (0) 2023.03.23
[JS deepdive] 제어문  (3) 2023.03.23
[JS deep dive] 연산자  (0) 2023.03.22
[JS deep dive] 표현식과 문  (0) 2023.03.21