[JS] Js기초 자료형

javaScript 기초를 탄탄하게 다져보자

Posted by lim.Chuck on December 6, 2024

[JavaScript]

기초

  1. [JS] Js기초
  2. [JS] Js기초 변수
  3. [JS] Js기초 자료형
  4. [JS] Js기초 형변환
  5. [JS] Js기초 연산자
  6. [JS] Js기초 반복문
  7. [JS] Js기초 switch
  8. [JS] Js기초 function
  9. [JS] Js기초 객체
  10. [JS] Js기초 배열

중급

  1. [JS] Js중급 호이스팅(Hoisting)과 TDZ(Temporal Dead Zone)
  2. [JS] Js중급 생성자함수
  3. [JS] 객체 메소드(Object methods), 계산된 프로퍼티(Computed property)
  4. [JS] 심볼(Symbol)
  5. [JS] WeakMap WeakSet
  6. [JS] 숫자, 수학 method (Number, Math)
  7. [JS] 문자열 메소드(String methods)
  8. [JS] 배열 메소드(Array methods)
  9. [JS] 구조 분해 할당 (Destructuring assignment)
  10. [JS] 매개변수 리스트와 전개 문법(Rest parameters and spread syntax)
  11. [JS] 클로저(Closure)
  12. [JS] setTimeout / setInterval
  13. [JS] call / apply / bind
  14. [JS] 상속, 프로토타입(Prototype)
  15. [JS] 클래스(Class)
  16. [JS] 클로미스(Promise)
  17. [JS] 비동기 처리(Async/Await)
  18. [JS] Generator
  19. [JS] 메모리 릭(Memory Leak)

1. 기본형 (Primitive Types)

기본형은 가장 단순한 형태의 데이터를 저장하는 자료형입니다.

1
2
3
4
5
6
7
8
9
10
11
12
// 1. 숫자형 (Number)
// JavaScript는 정수와 실수를 구분하지 않고 모두 Number 타입으로 처리합니다.
let integer = 123; // 정수
let float = 3.14; // 실수
let infinity = Infinity; // 무한대
let minusInfinity = -Infinity; // 음의 무한대
let notANumber = NaN; // 숫자가 아님을 나타내는 특수한 값

// 숫자형으로 할 수 있는 연산들
let addition = 10 + 5; // 더하기: 15
let division = 10 / 3; // 나누기: 3.3333...
let remainder = 10 % 3; // 나머지: 1
1
2
3
4
5
6
7
8
9
10
11
12
13
// 2. 문자열 (String)
// 텍스트 데이터를 저장하는 타입입니다.
let single = "작은따옴표"; // 작은따옴표 사용
let double = "큰따옴표"; // 큰따옴표 사용
// 템플릿 리터럴은 문자열 안에 변수나 표현식을 포함할 수 있습니다.
let template = `Hello, ${single}`;

// 문자열 메서드 활용
let str = "Hello, World!";
console.log(str.length); // 문자열 길이: 13
console.log(str.toUpperCase()); // 대문자 변환: "HELLO, WORLD!"
console.log(str.toLowerCase()); // 소문자 변환: "hello, world!"
console.log(str.substring(0, 5)); // 부분 문자열: "Hello"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 3. 불리언 (Boolean)
// 참(true)과 거짓(false) 두 가지 값만 가질 수 있는 논리 타입입니다.
let isTrue = true;
let isFalse = false;

// 주로 조건문에서 사용됩니다
if (isTrue) {
  console.log("참입니다!");
}

// 비교 연산의 결과로도 얻을 수 있습니다
console.log(10 > 5); // true
console.log(10 === "10"); // false (타입까지 비교)
console.log(10 == "10"); // true (값만 비교)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 4. undefined와 null
// undefined: 값이 할당되지 않은 상태
// null: 의도적으로 '비어있음'을 나타내는 상태
let undefined_var; // 자동으로 undefined 할당
let null_var = null; // 명시적으로 null 할당

// undefined와 null의 차이
console.log(typeof undefined_var); // "undefined"
console.log(typeof null_var); // "object" (JavaScript의 유명한 버그)

// 실제 사용 예
let user = {
  name: "Kim",
  age: null, // 나이 정보가 의도적으로 비어있음
};

2. 참조형 (Reference Types)

참조형은 여러 데이터를 담을 수 있는 복합 자료형입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 1. 객체 (Object)
// 키-값 쌍으로 데이터를 저장하는 자료구조입니다.
let person = {
  name: "Kim", // 문자열 속성
  age: 25, // 숫자형 속성
  isStudent: true, // 불리언 속성
  hobbies: ["독서", "운동"], // 배열 속성
  sayHello: function () {
    // 메서드(함수) 속성
    console.log(`안녕하세요, ${this.name}입니다.`);
  },
};

// 객체 속성 접근 방법
console.log(person.name); // 점 표기법
console.log(person["age"]); // 대괄호 표기법
person.sayHello(); // 메서드 호출
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 2. 배열 (Array)
// 순서가 있는 데이터 목록을 저장하는 자료구조입니다.
let fruits = ["사과", "바나나", "오렌지"];
let mixed = [1, "문자열", true, { key: "value" }]; // 다양한 타입 저장 가능

// 배열 메서드 활용
console.log(fruits.length); // 배열 길이
fruits.push("포도"); // 끝에 추가
fruits.pop(); // 끝에서 제거
fruits.unshift("레몬"); // 앞에 추가
fruits.shift(); // 앞에서 제거

// 배열 순회
fruits.forEach((fruit) => {
  console.log(fruit);
});

3. 자료형 변환과 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 1. 형 변환 (Type Conversion)
// 다른 타입으로 변환이 필요할 때 사용합니다.
let num = 123;
let str = String(num); // 숫자를 문자열로: "123"
let back = Number(str); // 문자열을 숫자로: 123
let bool = Boolean(1); // 다른 타입을 불리언으로: true

// 자동 형 변환 주의사항
console.log("5" + 3); // "53" (문자열 연결)
console.log("5" - 3); // 2 (숫자 뺄셈)
console.log("5" * "3"); // 15 (숫자 곱셈)

// 2. 타입 확인
// typeof 연산자로 타입을 확인할 수 있습니다.
console.log(typeof "문자열"); // "string"
console.log(typeof 123); // "number"
console.log(typeof true); // "boolean"
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function () {}); // "function"

4. 주의사항과 팁

  1. 데이터 타입 일관성

    • 가능한 한 변수의 타입을 일관되게 유지하세요.
    • 타입이 자주 변경되면 버그의 원인이 될 수 있습니다.
  2. 비교 연산자 사용

    • ===(엄격한 동등) 사용을 권장합니다.
    • ==는 자동 형변환으로 인해 예상치 못한 결과가 발생할 수 있습니다.
  3. 참조형 데이터 다루기

    • 객체와 배열은 참조로 전달됩니다.
    • 복사할 때는 얕은 복사와 깊은 복사를 구분해서 사용해야 합니다.

이러한 자료형들의 특성을 잘 이해하고 활용하면 더 안정적이고 효율적인 프로그래밍이 가능합니다! 👍