모던 JavaScript 튜토리얼을 따라가면서 정리합니다.
자바스크립트에서는 UTF-16을 사용해 문자열을 코딩한다.
\n
을 사용할 수 있다.\u...
를 사용하면 해당 문자의 유니코드를 사용해 글자를 만들 수 있다.문자열 내의 글자 하나를 얻으려면 대괄호
[]
를 사용한다.부분 문자열을 얻으려면
slice
나substring
을 사용한다.str.slice(start[, end])
문자열의 start부터 end 까지(end 미포함)를 반환한다.
두 번째 인수가 생략된 경우 명시한 위치부터 문자열 끝까지 반환한다.
start와 end는 음수가 될 수 있다. 음수를 넘기면 문자열 끝에서부터 카운팅을 시작한다.
str.substring(start [, end])
start와 end 사이에 있는 문자열을 반환한다.
start가 end보다 커도 괜찮다.
substring은 음수 인수를 허용하지 않는다. 음수는
0
으로 처리된다.str.substr(start [, length)
소문자로 바꾸려면
toLowerCase
, 대문자로 바꾸려면toUpperCase
를 사용한다.부분 문자열의 위치를 얻으려면
indexOf
를 사용한다.부분 문자열 여부만 알고 싶다면
include/startsWith/endsWith
를 사용한다.특정 언어에 적합한 비교 기준을 사용해 문자열을 비교하려면
localeCompare
를 사용한다. 이 메서드를 사용하지 않으면 글자 코드를 기준으로 문자열이 비교된다.str.trim()
: 문자열 앞과 끝의 공백 제거str.repeat(n)
: 문자열을 n번 반복
과제
첫 글자를 대문자로 변경하기
1
unFirst("john") = "John";
답
1
2
3
4
5
function unFirst(str) {
// 빈 문자열인지 확인
if (!str) return str;
return str[0].toUpperCase() + str.slice(1);
}
스팸 문자열 걸러내기
1
2
3
checkSpam('buy ViAgRA now') == true
checkSpam('free xxxxx') == true
checkSpam("innocent rabbit") == false
내가 쓴 답
1
2
3
4
5
6
7
function checkSpam(str) {
let lowerStr = str.toLowerCase();
if (lowerStr.include('viagra') || lowerStr.include('xxx')) {
return true;
}
return false;
}
정답
1
2
3
4
function checkSpam(str) {
let lowerStr = str.toLowerCase();
return lowerStr.include('viagra') || lowerStr.include('xxx');
}
문자열 줄이기
1
2
3
truncate("What I'd like to tell on this topic is:", 20) = "What I'd like to te…"
truncate("Hi everyone!", 20) = "Hi everyone!"
내가 쓴 답
1
2
3
4
5
6
function truncate(str, maxlength) {
if (str.length() > maxlength) {
return str.slice(0, maxlength - 1) + "...";
}
return str;
}
정답
1
2
3
4
function truncate(str, maxlength) {
return str.length() > maxlength ?
str.slice(0, maxlength - 1) + "..." : str;
}
숫자만 추출하기
1
alert( extractCurrencyValue('$120') === 120 ); // true
답
1
2
3
function extractCurrencyValue(str) {
return +str.slice(1);
}