Data Type in Javascript
자바스크립트 타입
: 크게 두 가지의 타입으로 나뉘어져있다.
- 원시 타입 : Boolean(T,F), String, Number, null, undefined, Symbol (불변성을 가지고 있다)
- Call Stack 이라는 곳에 저장이 됨.
: 고정된 크기로 Call Stack 메모리에 저장, 실제 데이터가 변수에 할당
- 참조 타입 : Object, Array
- Heap 이라는 곳에 저장이 됨
- 객체든, 배열이든 이 주소가 Call Stack에 저장이 된다.
- → 주소만 가져온다.
- Heap 이라는 곳에 저장이 됨
⇒ enemies 라는 변수를 만들고 여기에 배열을 저장했음
💡 기본적으로 JS는 원시 타입에 대한 값을 저장하기 위해 Call Stack 메모리 공간을 사용함. 참조 타입의 경우 Heap이라는 별도의 메모리 공간을 사용함 → 이 경우 Call Stack은 개체 및 배열 값이 아닌 Heap 메모리 참조 ID를 값으로 저장함 |
Primitive types
Object types
자바스크립트는 동적 타입이다.
JS는 느스한 타입의 동적 언어이다. JS는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당)이 가능하다
let foo = 42 //숫자
foo = 'bar' //인줄 알았지? 문자열이지롱
foo = true //인줄 알았지? 불리언이지롱
변수의 타입은 number겠죠, 그러나 이제 문자열이 됨, 그러나 이제 불리언이 됨
- 같은 변수가 여러개의 타입을 가질 수 있다
- 타입을 명시하지 않아도 된다
- 대부분의 다른 언어는 정적 타입이다. (자바, C#, C++, 타입스크립트)
let foo = 42
foo = 'bar'
foo = true
console.log(typeof foo);
// 원시 타입
// 문자열 String
const name = "han";
// Number
const age = 30;
// Boolean
const hasJob = true;
// null - 소문자로 해줘야함.
const car = null;
// undefined
let anything; //아무것도 할당 안해주면 undefined 할당됨
// Symbol
const sym = Symbol();
// 참조 타입
// Array 배열
const hobbies = ['walking', 'books'];
// Object 객체
const address = {
province : '경기도',
city: '성남시'
}
console.log(typeof address);
console.log(typeof hobbies);
//배열도 결국에는 object의 하나의 형태이므로 typeof를 사용할 경우 object를 리턴한다.
//그러면 배열인거 어떻게 체크하는가?
console.log(Array.isArray(hobbies)); // true 출력
JavaScript Type Conversion
JavaScript 변수는 새 변수 및 다른 데이터 유형으로 변환할 수 있다.
- JS 함수를 사용하여
- JS 자체에 의해 자동으로
- 함수 사용 예시
let val;
// Number to String
val = String(111);
val = String(8 + 4);
// Boolean to String
val = String(false);
// Date to String
val = String(new Date());
// Array to String
val = String([1, 2, 3, 4, 5]);
// toString()
val = (5).toString();
// String to number
val = Number('1');
val = Number(true); //number로 변경시 1
val = Number(false); //number로 변경시 0
val = Number(null); //number로 변경시 0
val = Number([1,2,3]); //number로 변경시 NaN : Not a Number
// 소수점 아래를 없애고싶다.
val = parseInt('111.40');
// 소수점을 남기고 싶다
val = parseFloat('111.40');
console.log(val);
console.log(typeof val);
console.log(val.length);
- 자동 예시
const val1 = String(2);
const val2 = 3;
const sum = val1 + val2;
console.log(sum); //23출력
console.log(typeof sum); //타입이 string으로 나옴 => 자동으로 변경이 된것.
자바스크립트 연산 및 Math Object
Math.round(2.4);
: 가장 가까운 정수로 ⇒ 2
Math.ceil(2.4);
: 가장 가까운 숫자로 rounded up 반올림 하는거.
Math.floor(2.4);
: 가장 가까운 숫자로 rounded down 반내림 하는거.
'☁️ 구름 X kakao DeepDive > ☁️ HTML CSS JS' 카테고리의 다른 글
[CSS] 3일차 CSS (Background-Clip) (1) | 2024.11.17 |
---|---|
[CSS] 3일차 CSS정리 (CSS Box Model, Text 스타일링, Image, Input, Transform, animation CSS) (0) | 2024.11.17 |
[CSS] 2일차 css 정리 (가상클래스, 가상요소) (0) | 2024.11.16 |
[JavaScript] 자바스크립트 기본 다지기(Consol 객체), (var,let,const) (0) | 2024.11.16 |
[HTML/CSS] 기초 정리 (2) | 2024.11.16 |