데이터 타입

ken6666·2024년 1월 10일
0

JS

목록 보기
3/39

데이터 타입

원시 타입

숫자 타입

// 모두 숫자 타입이다.
var integer = 10;    // 정수
var double = 10.12;  // 실수
var negative = -20;  // 음의 정수

자바스크립트는 C나 자바와 다르게 하나의 숫자 타입만 존재한다. 모든 수를 실수로 처리한다.

문자열 타입

// 문자열 타입
var string;
string = '문자열'; // 작은따옴표
string = "문자열"; // 큰따옴표
string = `문자열`; // 백틱 (ES6)

string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식된다.';
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식된다.";

템플릿 리터럴

var template = `<ul>
  <li><a href="#">Home</a></li>
</ul>`;

console.log(template);
/*
<ul>
  <li><a href="#">Home</a></li>
</ul>
*/

일반적인 문자열과 달리 템플릿 리터럴 내에서는 이스케이프 시퀸스를 사용하지 않고도 줄바꿈이 허용된다

표현식 삽입

var first = 'Ung-mo';
var last = 'Lee';

// ES5: 문자열 연결
console.log('My name is ' + first + ' ' + last + '.'); // My name is Ung-mo Lee.
var first = 'Ung-mo';
var last = 'Lee';

// ES6: 표현식 삽입
console.log(`My name is ${first} ${last}.`); // My name is Ung-mo Lee.

표현식의 평가 결과가 문자열이 아니더라도 문자열로 강제로 변환되어 삽입된다.

불리언 타입

var foo = true;
console.log(foo); // true

foo = false;
console.log(foo); // false

undifined 타입

var foo;
console.log(foo); // undefined

undifined는 개발자가 의도적으로 할당하기 위한 값이 아니라 엔진이 변수를 초기화 할 떄 사용되는 값이다. undifined값이 환된다면 초기화되지 않은 변수라는 것을 알 수 있다.

null 타입

var foo = 'Lee';

// 이전에 할당되어 있던 값에 대한 참조를 제거. foo 변수는 더 이상 'Lee'를 참조하지 않는다.
// 유용해 보이지는 않는다. 변수의 스코프를 좁게 만들어 변수 자체를 재빨리 소멸시키는 편이 낫다.
foo = null;

의도적으로 값이 없다는 것을 명시하기 위해 사용한다.

동적 타이핑

var foo;
console.log(typeof foo);  // undefined

foo = 3;
console.log(typeof foo);  // number

foo = 'Hello';
console.log(typeof foo);  // string

foo = true;
console.log(typeof foo);  // boolean

foo = null;
console.log(typeof foo);  // object

foo = Symbol(); // 심벌
console.log(typeof foo);  // symbol

foo = {}; // 객체
console.log(typeof foo);  // object

foo = []; // 배열
console.log(typeof foo);  // object

foo = function () {}; // 함수
console.log(typeof foo);  // function

자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 그리고 재할당에 의해 변수의 탕비은 언제든지 동적으로 변할 수 있다.

정적 타입 언어

C나 자바 같은 정적타입 언어는 변수를 선언할 때 변수에 할당할 수 있는 값의 종류, 즉 데이터 타입을 사전에 선언해야한다. 이를 명시적타입선언이라 한다.

동적 타입언어의 변수

자바스크립트는 개발자의 의도와는 상광없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동적으로 변환되기도 한다. 이는 유연성은 높지만 신뢰성은 떨어진다는 단점이 있다.

0개의 댓글