안녕하세요. 송기석입니다.

 

11월이 거의 다 지나가고 2013년 마지막 달인 12월이 코앞에 다가 왔습니다. 저는 하루 하루가 매우 소중합니다. 제가 소중하게 생각하는 하루 하루를 감기로 날려 버리지 않도록 추운 겨울 감기 조심하시기를 바랍니다.

 

01 문자열 타입 연산

 

우리는 이미 변수에서 문자열 값에 대하여 알고 있습니다. 이번에는 조금 더 들어가서 문자열 타입 연산에 대하여 알아보도록 하겠습니다.

 

var s1 = '012';

var s2 = '345';

var s3 = s1 + s2;


console.log(s3);

 

"012345"

 

문자열과 문자열을 더하니 문자열이 하나로 붙어서 나옵니다.

재미있는 방법입니다. 문자와 문자를 더하여 하나로 만드는 것은 여러 가지로 응용이 가능합니다. 저는 문자열을 계속 더하여 원하는 내용을 만드는 방법을 자주 사용합니다. 계속 더할 때  += 연산자를 사용하면 문자열의 연결과 대입을 동시에 할 수 있습니다.

 

var s = '012';

s += '345';


console.log(s);

 

"012345"

 

02 문자열 - 불변 타입

 

문자열은 우리가 좀 생각해야 하는 부분이 있습니다. 그것은 자바스크립트에서 문자열은 불변입니다. 불변이라고 하면 말 그대로 변하지 않는다는 것인데 다음을 보고 설명을 하겠습니다.

 

var s1 = '012';

var s2 = s1;


console.log(s1);

console.log(s2);


s1 += '345';


console.log(s1);

console.log(s2); 


"012"

"012"

"012345"

"012"

 

s1에 '012'값을 넣고 s2에 s1넣으면 s2는 s1과 연결 되어 있지 않고 새로운 영역에 값을 가져 옵니다. 그것은 불변하는 문자열은 하나의 커다란 이점이 있는데 컴파일러가 이러한 문자열을 공유하도록 정렬시킬 수 있다는 점입니다. 결국 불변성의 비효율성보다 문자열 공유의 효과성이 더 중요하다고 결정하여 문자열을 불변타입으로 한 것 입니다.

 

C언어서는 보통 문자열을 배열로 생각합니다. 하지만 C언어도 배열이 아닌 문자열 상수로 저장을 할 수 있는 데 이 값은 변경을 할 수 없는 값입니다. 자바에서도 문자열은 불변입니다.