모카스터디/JavaScript

자료형과 형 변환

softmoca__ 2024. 2. 29. 21:11
목차

 

 

 

원시 타입에 대한 값을 저장하기 위해 Call Stak 메모리 공간을 사용하지만 참조 타입의 경우  데이터 타입이 정해지지 않고 Heap이라는 별도의 메모리 공간을 사용한다.
참조타입은 Call Stack 개체 및 배열 값이 아닌 Heap 메모리 참조 ID를 값으로 저장한다.

 

 

 

자바스크립트는 동적 타입이다. 

let foo=42    /number
foo='bar'    // string
foo=true // boolean

JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어이다. 

JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능하다.

 

- 같은 변수가 여러개의 타입을 가질 수 있다.

- 타입을 명시하지 않아도 된다.

- 대부분의 다른 언어는 정적 타입 언어이다.(C,자바..)

 

 

 

원시 타입

const name = "han";  // 문자열 String 

const age = 30;  // Number

const hasJob = true; // Boolean

const car = null; // null

let anything; // undefined

const sym = Symbol(); // Symbol

 

참조 타입



const hobbies = ['walking', 'books']; // Array 배열 
 
const address = {  // Object 객체
    province: '경기도',
    city: '성남시'
}

console.log(typeof hobbies);
console.log(Array.isArray(address));

참조 타입중 배열인지 확인하는 방법으 typeof로 하면 안되고 isArray라느 메서드로 확인을 해야한다.

(typeof로 확인을 하면 Object로 나오는데  배열은 오브젝트의 한 형태중 하나 이기 때문이다)