JavaScript에서의 문자열과 배열: 유사하지만 다른 두 데이터 구조

BossTeemo·2024년 5월 6일
post-thumbnail

문자열과 배열: 유사하지만 다른 두 데이터 구조

소개

JavaScript에서 문자열과 배열은 서로 유사한 부분이 많지만, 완전히 동일하지 않습니다. 이 글에서는 문자열과 배열의 유사점과 차이점에 대해 자세히 알아보겠습니다.

유사점

  1. length 프로퍼티

    • 문자열과 배열 모두 길이를 나타내는 length 프로퍼티를 가지고 있습니다.
    let myString = "Codeit";
    let myArray = ["C", "o", "d", "e", "i", "t"];
    console.log(myString.length); // 6
    console.log(myArray.length); // 6
  2. 인덱스 접근

    • 두 데이터 구조 모두 대괄호 표기법을 사용해 인덱스를 통해 각 요소에 접근할 수 있습니다.
    console.log(myString[0]); // 'C'
    console.log(myArray[0]); // 'C'
  3. for...of 문을 통한 순회

    • for...of 문을 사용하여 문자열과 배열을 순회할 수 있습니다.
    for (let char of myString) {
        console.log(char);
    }
    // 'C', 'o', 'd', 'e', 'i', 't'
    
    for (let char of myArray) {
        console.log(char);
    }
    // 'C', 'o', 'd', 'e', 'i', 't'

차이점

  1. 데이터 타입

    • 문자열은 string 타입이고, 배열은 object 타입입니다.
    console.log(typeof myString); // 'string'
    console.log(typeof myArray); // 'object'
  2. 비교 연산

    • 두 값은 유사해 보이지만 일치 비교(===)와 동등 비교(==) 모두에서 false를 반환합니다.
    console.log(myString === myArray); // false
    console.log(myString == myArray); // false
  3. 가변성(Mutability)

    • 배열은 가변적(mutable)이어서 요소를 수정할 수 있지만, 문자열은 불변적(immutable)이어서 한 번 할당된 값을 변경할 수 없습니다.
    // 배열은 mutable
    myArray[0] = 'B';
    console.log(myArray); // ['B', 'o', 'd', 'e', 'i', 't']
    
    // 문자열은 immutable
    myString[0] = 'B'; // 아무 변화 없음
    console.log(myString); // 'Codeit'
  4. 메서드

    • 문자열과 배열 모두 공통된 메서드가 있지만, 배열에서만 사용할 수 있는 splice와 같은 메서드는 문자열에서는 사용할 수 없습니다.
    // 배열
    myArray.splice(1, 2, 'x');
    console.log(myArray); // ['B', 'x', 'e', 'i', 't']
    
    // 문자열
    // myString.splice(1, 2, 'x'); // Error

결론

문자열과 배열은 공통적인 점이 많지만, 다른 데이터 타입이기 때문에 각자의 특징을 이해하는 것이 중요합니다. 특히 문자열은 불변적이어서 기존 문자열을 수정하지 않고 새로운 문자열을 만들어야 한다는 점을 기억하세요.

profile
1인개발자가 되겠다

0개의 댓글