- 기본형 (Primitive Type)
-
- 숫자 (Number)
- 문자열 (String)
- 불리언 (Boolean)
- null
- undefined
- 참조형 (Reference Type)
-
- 배열(Array)
- 객체 (Object)
키워드
Number, 정수와 실수 구분, Number.isInteger(n), 템플릿 리터널, Object.keys(v), Object.values(n)
Number, 정수와 실수 구분, Number.isInteger(n), 템플릿 리터널, Object.keys(v), Object.values(n)
# 기본형 (Primitive Type)
- 값 자체를 저장하는 데이터 타입, 불변 (immutable)
# 숫자 (Number)
- 정수와 소수(실수)를 포함한 숫자 데이터 타입 (10, 99.99, 3.14)
- 정수(int)와 실수(dobule)을 구분하지 않고 하나의 number 숫자로 취급한다
- 정수와 실수를 구분하지 않는 이유?
- JavaScript는 동적 타입 언어로 숫자 타입을 자동으로 변환한다
- 정수와 실수를 구분하지 않는 편리함이 있지만 부동소수점 연산의 오차(0.1 + 0.2 !== 0.3)와 같은 문제가 발생 가능성 있음
- 정수 확인 방법 : Number.isInteger(n)
- 특수 값
- Infinity : 양의 무한대 ( 1 / 0 )
- -Infinity : 음의 무한대 ( -1 / 0)
- NaN (Not-a-Number) : 숫자가 아님 (잘못된 계산 결과)
let num1 = 100;
let num2 = 3.14;
let num3 = 1 / 0;
let num4 = -1 / 0;
let num5 = "string" * 100;
console.log(num1, typeof(num1), Number.isInteger(num1)); // 100 'number' true 출력
console.log(num2, typeof(num2), Number.isInteger(num2)); // 3.14 'number' false 출력
console.log(num3, typeof(num3), Number.isInteger(num3)); // Infinity 'number' false 출력
console.log(num4, typeof(num4), Number.isInteger(num4)); // - Infinity 'number' false 출력
console.log(num5, typeof(num5), Number.isInteger(num5)); // NaN 'number' false 출력
# 문자열 (String)
- 문자들의 집합(텍스트 데이터)
- 작은따옴표('), 큰따옴표(")으로 감싸서 표현
- 템플릿 리터널 (Template Literal)
- 문자열을 쉽게 다루고 조작할 수 있는 JavaScript의 기능
- 따옴표 대신 백틱(`)으로 감싸서 표현
- 문자열에 ${ } 내부엔 변수나 표현식을 직접 사용할 수 있음
- 줄바꿈 표현과 띄어쓰기 표현이 가능
let str1 = "Hellow!";
let str2 = "World!";
let str3 = `Hi~ ${str2}`;
let str4 = `${3.14 * 64}`;
let str5 = `Hellow~
World~`; // pre 태그처럼 줄바꿈 띄어쓰기 모두 표현된다
console.log(str1, typeof(str1)); // Hellow! string 출력
console.log(str2, typeof(str2)); // World! string 출력
console.log(str3, typeof(str3)); // Hi~ World! string 출력
console.log(str4, typeof(str4)); // 200.96 string 출력
console.log(str5, typeof(str5)); // Hellow~
// Wrold! string 출력
# 불리언 (Boolean)
- true(참) 또는 false(거짓) 값을 가지는 논리 타입
let bool1 = true;
let bool2 = false;
if (bool1) console.log(bool1, typeof(bool1)); // true 'boolean' 출력
if (!bool2) console.log(bool2, typeof(bool2)); // false 'boolean' 출력
# null
- 의도적으로 "값이 없음"을 의미하는 데이터 타입
- 개발자가 명시적으로 변수에 값이 없음을 지정할 때 사용
let nul1 = null;
console.log(nul1, typeof(nul1)); // null 'object' 출력
# undefined
- 값이 "아직 할당되지 않음"을 의미
- 변수를 선언했지만 초기화하지 않으면 자동으로 할당되는 값
let undef1;
let undef2 = undefined;
console.log(undef1, typeof(undef1)); // undefined 'undefined' 출력
console.log(undef2, typeof(undef2)); // undefined 'undefined' 출력
# 참조형 (Reference Type)
- 값이 아닌 메모리 주소를 저장하는 데이터 타입, 가변(mutable)
# 배열 (Array)
- 여러 개의 값을 순서대로 저장하는 데이터 타입
- 대괄호 [ ]로 정의하며, 각 값은 인덱스(0부터 시작) 를 통해 접근 가능
- 데이터 접근 : 변수[인덱스]
let fruits = ["사과", "바나나", "포도"]
console.log(fruits[0], fruits[1], fruits[2], typeof(fruits)); // 사과 바나나 포도 object 출력
fruits.forEach(function (fruit) { // 사과
console.log(fruit); // 바나나
}); // 포도 출력
# 객체 (Object)
- 키-값(key-value) 쌍으로 이루어진 데이터 타입
- 중괄호 { }로 정의하며, 속성(property)을 가질 수 있음 {속성명 : 속성값}
- 데이터 접근 (속성값)
- 변수.키
- 변수["키"]
- Ojbect 내장 메소드
- Object.keys(객체) : 객체의 속성명을 배열로 반환한다
- Object.values(객체) : 객체의 속성값을 배열로 반환한다
- Object.entries(객체) : 객체의 속셩명과 속성값을 배열로 반환한다
let obj = {name : "사과", category : "과일", no : 192839}
console.log(obj.name, typeof(obj)) // 사과 object 출력
console.log(obj["category"], typeof(obj.category)) // 과일 string 출력
console.log( Object.keys(obj)) // (3) ['name', 'category', 'no'] 출력
console.log( Object.values(obj)) // (3) ['사과', '과일', 192839] 출력
console.log( Object.entries(obj))
// (3) ['name', '사과'] ['category', '과일'] ['no', 192839] 출력
'Web 개발 > JS' 카테고리의 다른 글
JavaScript 함수 (0) | 2025.03.18 |
---|---|
JavaScript 반복문과 제어 (0) | 2025.03.14 |
JavaScript 조건문 (0) | 2025.03.13 |
JavaScript 변수 (var, let, const) (0) | 2025.03.11 |
JavaScript이란 무엇일까? (탄생과 배경, 역사, 특징, 장단점) (0) | 2025.03.10 |