[인사이드 자바스크립트] 문자열 질문있습니다.

38쪽에 "주의해야 할 점은 한 번 정의된 문자열은 변하지 않는다는 것이다."라고 설명되어 있습니다. 문자열이면 'test’를 말하는 건데, 그렇다면 3번 코드를 실행해도 test로 출력이 되야 하는 것이 아닌가요. 저 내용을 “문자열을 인덱스로 접근할 경우에는 값을 변경할 수 없다.” 이렇게 이해하면 될까요?

// 1
var str = 'test';
console.log(str[0], str[1], str[2], str[3]); // t e s t

// 2
str[0] = 'T';
console.log(str); // test

// 3
str = 'TEST';
console.log(str); // TEST
let str = 'test'

에서

str = 'TEST'

를 하면 str가 가리키는 reference 자체가 바뀌는 거로 알고있어요. 즉 'test''TEST'로 바뀌지 못하니까 str이 가리키는 것 자체가 바뀌는거죠.

물론 2번처럼 str[0]를 바꾸려는 경우에는 그것이 'test'의 일부이기 때문에 아예 바뀔 수가 없죠. 하지만 3번처럼 reference를 바꾸는 건 가능하다는 사실.

1개의 좋아요

아.
수정이 되는 게 아닌 완전 값이 바뀌는 뜻이네요.
감사합니다.

1개의 좋아요