문자열 (String)
let str = 'Apple';
str[0];
str[0] = 'B';
console.log(str)
string '+' operator
let a = 'ap';
let b = 'ple';
let c = 1;
a + b;
a + c;
a - b;
여러가지 함수들
- 모든 string 메소드는 immutable, 즉 원본을 수정하지 않는다.
let str = 'apple';
str.length;
str.indexOf('p');
str.lastIndexOf('p');
'I love you'.split(' ')
str.includes('a');
str.substring(0, 2);
str.slice(-3);
str.toLowerCase();
str.toUpperCase();
' apple '.trim();
str.match();
str.replace('p', 'z');
느낀점
- 문자열 수정이 불가한 이유는 C 로 치면 문자열은 코드영역의 메모리를 차지하여 절대 수정되면 안되기 때문인데, 이걸 자바스크립트에서는 그냥 '이건 이렇다...' 라고 하면 상당히 이해하기가 힘들다.
- 자바스크립트를 독학으로 공부한 적이 있었고 그때도 아리송했다. 지금 생각해보면 C++이 배우기 더 쉬웠던 것 같다. 받아들이기가 직관적이고 납득가능한 설명이 있어서 그런게 아닐까. 자바스크립트는 예외가 많고 설명이 없다. 예를 들면 문자열 수정이 불가한 이유라던가, 문자열 수정을 해도 에러를 발생시키지 않는 점이라던가... 에러를 발생시키지 않으면 개발자를 엄청 헷깔리게 만든다. 특히 초보자 입장에선...
- 그래서 계속 느끼는거지만 자바스크립트만으로는 정말 부족한 것 같다. 물론 자바스크립트만으로도 배울건 많겠지만, 개발자로 오래 살아남으려면 로우레벨의 이해가 필수적일 것 같다. 어차피 웹브라우저는 웹브라우저 엔진(blink, webkit)으로 만들고, 그 엔진은 C++ 로 만든다는것...
- 자바스크립트에서 변수 추적은
console.log
를 이용한다.
앞으로