
문자열과 배열: 유사하지만 다른 두 데이터 구조
JavaScript에서 문자열과 배열은 서로 유사한 부분이 많지만, 완전히 동일하지 않습니다. 이 글에서는 문자열과 배열의 유사점과 차이점에 대해 자세히 알아보겠습니다.
length 프로퍼티
length 프로퍼티를 가지고 있습니다.let myString = "Codeit";
let myArray = ["C", "o", "d", "e", "i", "t"];
console.log(myString.length); // 6
console.log(myArray.length); // 6
인덱스 접근
console.log(myString[0]); // 'C'
console.log(myArray[0]); // 'C'
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'
데이터 타입
string 타입이고, 배열은 object 타입입니다.console.log(typeof myString); // 'string'
console.log(typeof myArray); // 'object'
비교 연산
===)와 동등 비교(==) 모두에서 false를 반환합니다.console.log(myString === myArray); // false
console.log(myString == myArray); // false
가변성(Mutability)
// 배열은 mutable
myArray[0] = 'B';
console.log(myArray); // ['B', 'o', 'd', 'e', 'i', 't']
// 문자열은 immutable
myString[0] = 'B'; // 아무 변화 없음
console.log(myString); // 'Codeit'
메서드
splice와 같은 메서드는 문자열에서는 사용할 수 없습니다.// 배열
myArray.splice(1, 2, 'x');
console.log(myArray); // ['B', 'x', 'e', 'i', 't']
// 문자열
// myString.splice(1, 2, 'x'); // Error
문자열과 배열은 공통적인 점이 많지만, 다른 데이터 타입이기 때문에 각자의 특징을 이해하는 것이 중요합니다. 특히 문자열은 불변적이어서 기존 문자열을 수정하지 않고 새로운 문자열을 만들어야 한다는 점을 기억하세요.