6장 데이터 타입

박찬미·2023년 11월 8일
0

데이터 타입

자바스크립트는 7개의 타입을 가지고 있다.

  • 원시타입: boolean ,null, undefined, number,string, symbol
    (ES6 에서 symbol 타입 추가됨)
  • 객체타입

Symbol은 아직 사용해 본적이 없는 타입니다.
Symbol은 고유하고 변경할 수 없는 식별자를 생성하며, 한 번 생성하면 복사할 수 없다고한다.

숫자 타입

java나 C는 정수(int/long),실수(float)를 자료형으로 제공한다.
하지만 자바스크립트는 숫자타입만 제공한다.
자바스크립트는 정수타입을 제공하지 않기에 모든 숫자타입은 실수로 처리한다.

var integer = 10; // 정수
var double = 10.12; // 실수
var negative = -20; // 음의 정수

//숫자타입은 모두 실수로 처리된다.
console.log(1 === 1.0); //true
console.log(4 / 2); //2
console.log(3 / 2); //1.5

문자열 타입

문자열 타입은 덱스트 데이터를 나타낸다.

은따옴표(''), 큰따옴표(""), 백틱을 사용

var string;
string = '문자열';
stirng = "문자열";
stirng = `문자열`;//(ES6부터 지원)
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식된다.'
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식된다."

템플릿 리터럴

ES6부터 도입되었다. 템플릿 리터럴은 멀티라인 문자열, 표신식 삽입, 태그드 템플릿과 같은 편리한 문자열 처리 기능을 제공한다.

var template = `template literal`;
console.log(template);//template literal

불리언 타입

불리언 타입의 값은 true, false 2개 뿐이다.

undefined 타입

var 키워드로 선언한 변수는 undefined로 초기화 된다.
변수를 선언하고 아무런 할당없이 변수를 참조하면 undefined가 반환됨.

null 타입

변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.

심벌 타입

한번도 사용해보지 않은 타입이다...
다른 값과 중복되지 않는 유일무이한 값이다.

var key = Symbol('key');
console.log(typeof key); // Symbol

//객체 생성
var obj = {};

// 이름이 충돌되지 않도록 심볼을 프로퍼티 키로 사용한다.
obj[key] = 'value';
console.log(obj[key]); // value

데이터 타입의 필요성

값은 메모리에 저장하고 참조할 수 있어야한다.
(몇 바이트의 메모리 공간을 사용해야 낭비없이 저장할 수 있는지 알아야함)

동적 타이핑

자바스크립트의 모든 값은 데이터 값을 가지지만 변수는 데이터 타입을 가지지 않는다.
c나 자바 같은 정적 타입 언어는 변수를 선언할 때 데이터 타입을 사전에 선언해야한다.
하지만 자바스크립트는 변수를 선언할 때 타입을 선언하지 않는다.
var,let,const만 사용하고 어떤 타입의 값이라도 할당 가능하다.

동적 타입 언어와 변수

동적타입언어는 변수에 어떤 타입의 값이라도 할당 할 수있지만 모든 아키텍처에는 위험이 있다고한다. 예를 들어서 숫자 타입의 변수일 것이라고 예측했지만 사실은 문자열 일 수도있다. 동적 타입 언어는 유연성은 높지만 신뢰성은 떨어진다.

변수 사용에 주의할 점

  • 변수는 필요한 경우에 제한적으로 사용한다.
  • 변수의 스코프(변수가 접근할 수 있는 유효 범위)를 최대한 좁게 만들어야한다.
  • 전역변수 사용x
  • 변수보다는 상수o (let, var 대신 const~~)
    (상수는 변수처럼 값을 할당받을 수 있지만 한번 할당한 값을 바꿀 수 없다)
  • 의미있는 변수 네이밍사용 하기
profile
우당탕탕

0개의 댓글