자바스크립트 문자열 타입에 대해서...
Javascript 2012. 3. 12. 17:32
이전 포스트 내용 중 문자열 타입에 관해 얘기 했던 적이 있습니다. 포스트 내용에 핵심은 문자열 타입이 "값"과 "참조" 중
어디에 속하는지에 대한 얘기였으며, 이번 포스트에서 그에 관한 얘기를 더 나눠보도록 하겠습니다.
우선 자바스크립트 문자열은 가변적인 길이를 가지고 있습니다, 이 말은 고정되어 있지 않다는 말이며, 그 때문에 고정된
메모리를 가진 변수에는 직접 저장할 수 없다는 말이며(값 타입처럼), 대신, 변수에 저장되는 것은 이런 값에 대한 "참조 값"입니다.
메모리를 가진 변수에는 직접 저장할 수 없다는 말이며(값 타입처럼), 대신, 변수에 저장되는 것은 이런 값에 대한 "참조 값"입니다.
그렇다면, 문자열은 "참조타입"이라는 걸까요?
아래 예제를 통해 더 자세히 알아보도록 하겠습니다.
-
// 참조타입의 기본 예
-
-
// r 배열객체는 참조타입이므로 r1 배열객체와 같은 값을 참조하며, r 배열객체와 r1 배열객체는 같습니다.
-
var r = [];
-
r[0] = 'hello';
-
-
var r1 = r;
-
r1[1] = 'world';
-
-
alert(r === r1); // true
-
-
// 문자열이 값타입이라는 예
-
-
// v 문자열 객체는 값타입이므로 새로 생성된 문자열 객체 v1과 다릅니다.
-
var v = 'hello';
-
var v1 = v + 'world';
-
-
alert(v === v1); // false
위 결과에서 말하는 바와같이 자바스크립트 문자열은 내부적으로 참조타입의 효율성을 갖도록 구현된 기본타입입니다.
즉, 기본타입이면서 참조타입이 가지고 있는 효율성만 갖도록 구현되었다는 말입니다.