01. string.prototype.at()
"문자열".at(index)
- at() 메소드는 인덱스값을 받아, 문자열에서 해당되는 인덱스의 요소를 반환합니다.
{
console.log("javascript reference".at("0")); //j
console.log("javascript reference".at("1")); //a
console.log("javascript reference".at("2")); //v
console.log("javascript reference".at("11")); //r
console.log("javascript reference".at("12")); //e
console.log("javascript reference".at("20")); //undefined
console.log("javascript reference".at("-1")); //c
console.log("javascript reference".at("-2")); //e
}
02. string.prototype.charAt()
"문자열".charAt(index)
- String.prototype.charAt() 메소드는 문자열에서 주어진 인덱스에 해당하는 문자를 반환합니다.
{
const str = 'hello world';
console.log(str.charAt(0)); // 'h'
console.log(str.charAt(1)); // 'e'
console.log(str.charAt(6)); // 'w'
console.log(str.charAt(11)); // 'd'
console.log(str.charAt(12)); // '' (빈 문자열)
}
03. string.prototype.charCodeAt()
"문자열".charCodeAt(index)
- UTF-16 코드 유닉스란 유니코드 문자 집합에서 문자에 할당된 고유한 식별자입니다.
- charCodeAt() 메소드는 문자열에서 특정 인덱스에 위치한 문자의 UTF-16 코드 유닉스 값을 반환합니다.
{
const str = 'Hello';
const code = str.charCodeAt(0); // 'H' 문자의 UTF-16 코드 유닉스 값인 72가 반환됩니다.
console.log(code); // 72
}
04. string.prototype.codePointAt()
"문자열".codePointAt(index)
- String.prototype.codePointAt() 메소드는 문자열에서 지정된 인덱스에 위치한 유니코드 코드 포인트를 반환합니다.
{
const str = 'hello world';
console.log(str.codePointAt(0)); // 104
console.log(str.codePointAt(6)); // 119
}
05. string.prototype.concat()
"문자열".concat("문자열")
const newString = str.concat(string1, string2, ..., stringN);
- 위 형식에서 str은 합칠 대상이 되는 문자열을 의미합니다. string1, string2, ..., stringN은 더할 문자열들을 의미합니다.
- concat() 메소드는 문자열을 합쳐 새로운 문자열을 반환하는 JavaScript의 문자열 메소드입니다. 이 메소드는 인자로 전달된 문자열을 호출한 문자열 뒤에 붙이는 역할을 합니다.
{
const str1 = 'Hello';
const str2 = 'World';
const str3 = '!';
const newString = str1.concat(' ', str2, str3);
console.log(newString); // 'Hello World!'
}
06. includes()
"문자열".includes(검색값, [위치값])
- 문자열 포함 여부를 검색하여, 불린(true, false)을 반환합니다.
- 대소문자를 구별합니다.
{
"javascript reference".includes("javascript"); //true
"javascript reference".includes("j"); //true
"javascript reference".includes("J"); //false
"javascript reference".includes("a"); //true
"javascript reference".includes("reference"); //true
"javascript reference".includes("reference", 11); //true
"javascript reference".includes("reference", 12); //false
}
07. indexOf()
"문자열".indexOf(검색값, [위치값])
- 문자열을 검색하여, 주어진 값과 일치하는 첫 번째 위치값(index)을 반환합니다.
- 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
- 대소문자를 구별합니다.
{
"javascript reference".indexOf("javascript"); //0
"javascript reference".indexOf("javascripts"); //-1 값이 없으면 -1이 나옴
"javascript reference".indexOf("j"); //0
"javascript reference".indexOf("J"); //-1
"javascript reference".indexOf("a"); //1
"javascript reference".indexOf("ja"); //0
"javascript reference".indexOf("jv"); //-1
"javascript reference".indexOf("reference"); //11
"javascript reference".indexOf("r"); //6
"javascript reference".indexOf("re"); //11
"javascript reference".indexOf("javascript", 0); //0
"javascript reference".indexOf("javascript", 1); //-1
"javascript reference".indexOf("reference", 0); //11
"javascript reference".indexOf("reference", 11); //11
"javascript reference".indexOf("reference", 12); //-1
"javascript reference".indexOf("r", 7); //11
"javascript reference".indexOf("r", 12); //15
}
08. lastIndexOf()
"문자열".lastIndexOf(검색값, [위치값])
- 문자열을 역순으로 검색하여, 주어진 값과 일치하는 첫 번째 위치값(index)을 반환합니다.
- 문자열을 역순으로 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
- 대소문자를 구별합니다.
{
"javascript reference".indexOf("javascript"); //0
"javascript reference".indexOf("javascripts"); //-1 값이 없으면 -1이 나옴
"javascript reference".indexOf("j"); //0
"javascript reference".indexOf("J"); //-1
"javascript reference".indexOf("a"); //1
"javascript reference".indexOf("ja"); //0
"javascript reference".indexOf("jv"); //-1
"javascript reference".indexOf("reference"); //11
"javascript reference".indexOf("r"); //6
"javascript reference".indexOf("re"); //11
"javascript reference".indexOf("javascript", 0); //0
"javascript reference".indexOf("javascript", 1); //-1
"javascript reference".indexOf("reference", 0); //11
"javascript reference".indexOf("reference", 11); //11
"javascript reference".indexOf("reference", 12); //-1
"javascript reference".indexOf("r", 7); //11
"javascript reference".indexOf("r", 12); //15
}
09. string.prototype.localeCompare()
localeCompare() 메소드는 다음과 같은 형식으로 사용됩니다.
string.localeCompare(compareString[, locales[, options]])
- 위 형식에서 string은 비교하고자 하는 문자열을, compareString은 비교 대상이 되는 문자열을 의미합니다. locales와 options은 선택적 매개변수로, 로케일 정보와 비교 옵션을 지정할 때 사용됩니다.
- localeCompare() 메소드는 두 문자열을 비교하여 대소관계를 반환하는 JavaScript의 문자열 메소드입니다. 이 메소드는 현재 로케일에 따라 문자열을 비교하므로, 문자열이 다른 언어(예: 한글, 일본어, 중국어 등)로 작성되어 있을 경우에도 적절한 비교 결과를 반환할 수 있습니다.
- 0: string과 compareString이 동일한 문자열인 경우
- -1: string이 compareString보다 사전순으로 앞에 위치한 경우
- 1: string이 compareString보다 사전순으로 뒤에 위치한 경우
localeCompare() 메소드는 다음과 같은 결과를 반환합니다.
{
const str1 = 'apple';
const str2 = 'banana';
const result = str1.localeCompare(str2);
console.log(result); // -1
}
10. string.prototype.match()
"문자열".match(검색값)
"문자열".match(정규식표현)
"문자열".match(정규식표현)
- 문자열(정규식)을 검색하고, 문자값(배열)을 반환합니다.
- 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 null을 반환합니다.
- 대소문자를 구별합니다.
- match() 메서드는 문자값(배열)을 반환하고, search() 메서드는 위치값(숫자)를 반환하는 것이 다릅니다.
{
"javascript reference".match("javascript"); //"javascript" 배열로 반환
"javascript reference".match("reference"); //"reference"
"javascript reference".match("r"); //"r"
"javascript reference".match("R"); //null
"javascript reference".match(/reference/); //reference
"javascript reference".match(/Reference/); //null
"javascript reference".match(/Reference/i); //reference
"javascript reference".match(/Reference/g); //reference
"javascript reference".match(/r/); //r
"javascript reference".match(/r/g); //rrr
"javascript reference".match(/w/g); //null
"javascript reference".match(/R/ig); //r r r
}
11. string.prototype.matchAll()
"문자열".includes(검색값, [위치값])
- string.prototype.matchAll() 메소드는 정규식과 매치된 문자열 전체에 대한 모든 일치 결과를 포함하는 이터레이터(iterator) 객체를 반환합니다.
{
const regex = /t(e)(st(\d?))/g;
const str = 'test1test2';
const array = [...str.matchAll(regex)];
console.log(array[0]); // ["test1", "e", "st1", "1", index: 0, input: "test1test2", groups: undefined]
console.log(array[1]); // ["test2", "e", "st2", "2", index: 5, input: "test1test2", groups: undefined]
}
- 위 예시에서는 matchAll 메소드를 사용해 정규표현식 /t(e)(st(\d?))/g를 문자열 'test1test2'에 대해 실행한 결과를 array 변수에 할당하였습니다.
- array 변수는 이후 console.log(array[0])과 console.log(array[1])의 두 번 출력됩니다. 각각의 console.log에서는 array 배열의 첫 번째와 두 번째 요소인 배열의 값과 함께, 해당 요소의 인덱스와 입력값 등 다른 정보들이 함께 출력됩니다.
12. string.prototype.normalize()
"문자열".normalize([form])
- 이 메소드는 Unicode Normalization Forms 중 하나를 사용하여 문자열을 정규화(normalize)합니다. 이 메소드는 문자열에서 발견된 유니코드 문자열 조합을 정규화하여 문자열을 비교하거나 검색할 때 도움이 됩니다.
- form은 선택적 매개변수로, 정규화 방식을 지정합니다. form은 'NFC', 'NFD', 'NFKC', 'NFKD' 중 하나를 선택할 수 있으며, 기본값은 'NFC'입니다.
- 아래 코드에서 normalize() 메소드는 str1과 str2 문자열을 정규화하여 새로운 문자열을 만듭니다. str1은 "cafe\u0301"로, str2는 "café"로 정의되어 있습니다. normalize() 메소드를 각각 적용하여 이 두 문자열을 정규화하면 결과적으로 "cafécafé"가 되는 것을 확인할 수 있습니다.
{
const str1 = 'cafe\u0301'; // "caf\u00e9"
const str2 = 'café';
const str3 = str1.normalize() + str2.normalize();
console.log(str3); // "cafécafé"
}
13. string.prototype.padEnd()
"문자열".padEnd(targetLength [, padString])
- padEnd() 메소드는 문자열의 끝에 다른 문자열을 추가하여 주어진 길이에 도달하도록 만드는 메소드입니다. 만약 기존 문자열의 길이가 주어진 길이보다 작다면, 추가로 주어진 문자열을 반복하여 끝에 붙입니다.
- targetLength: 필수 인자입니다. 문자열이 가져야 하는 최종 길이를 지정합니다. 만약 이 값이 기존 문자열의 길이보다 작다면, 문자열이 변경되지 않습니다.
- padString: 선택적 인자입니다. 문자열의 끝에 추가될 다른 문자열을 지정합니다. 이 값이 지정되지 않으면, 기본값인 공백이 사용됩니다.
{
const str1 = 'Hello';
const str2 = str1.padEnd(11, ' World');
console.log(str2); // "Hello World"
}
14. string.prototype.padStart()
"문자열".padStart(targetLength [, padString])
- padStart() 메소드는 문자열의 시작 부분에 다른 문자열을 추가하여 주어진 길이에 도달하도록 만드는 메소드입니다. 만약 기존 문자열의 길이가 주어진 길이보다 작다면, 추가로 주어진 문자열을 반복하여 시작 부분에 붙입니다.
- targetLength: 필수 인자입니다. 문자열이 가져야 하는 최종 길이를 지정합니다. 만약 이 값이 기존 문자열의 길이보다 작다면, 문자열이 변경되지 않습니다.
- padString: 선택적 인자입니다. 문자열의 시작 부분에 추가될 다른 문자열을 지정합니다. 이 값이 지정되지 않으면, 기본값인 공백이 사용됩니다.
{
const str = 'World';
const paddedStr = str.padStart(12, 'Hello, ');
console.log(paddedStr); // "Hello, World"
}
15. string.prototype.repeat()
"문자열".includes(검색값, [위치값])
- repeat() 메소드는 주어진 문자열을 반복하여 새로운 문자열을 만듭니다.
- count: 필수 인자입니다. 문자열이 반복되어야 하는 횟수를 지정합니다. 이 값은 0 이상이어야 합니다.
- 아래 코드에서 str은 "Hello "로 정의되어 있습니다. repeat() 메소드를 사용하여 str을 3번 반복하여 repeatedStr 변수에 저장했습니다. repeatedStr의 결과값은 "Hello Hello Hello "가 됩니다.
{
const str = 'Hello ';
const repeatedStr = str.repeat(3);
console.log(repeatedStr); // "Hello Hello Hello "
}
16.
17.
18. search()
"문자열".search(검색값)
"문자열".search(정규식표현)
"문자열".search(정규식표현)
- 문자열(정규식)을 검색하고, 위치값(숫자)을 반환합니다.
- 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
- 대소문자를 구별합니다.
{
"javascript reference".search("javascript"); //0
"javascript reference".search("reference"); //11
"javascript reference".search("r"); //6
"javascript reference".search("a"); //6
"javascript reference".search("jv"); //-1
"javascript reference".search("J"); //-1
"javascript reference".search(/reference/); //11
"javascript reference".search(/Reference/); //-1
"javascript reference".search(/Reference/i); //11 대문자를 소문자로 구별
"자바스크립트".search(/[a-z]/); //-1
"javascript reference".search(/[a-z]/g); //0
}
19. slice()
"배열", slice(시작 위치, [끝나는 위치])
- 시작 위치에서 종료 위치 값을 추출하여, 새로운 배열을 반환합니다.
{
['j','a','v','a','s','c','r','i','p','t'].slice(0); //['j','a','v','a','s','c','r','i','p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(1); //['a','v','a','s','c','r','i','p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(2); //['v','a','s','c','r','i','p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(0, 1); //['j']
['j','a','v','a','s','c','r','i','p','t'].slice(1, 2); //['a']
['j','a','v','a','s','c','r','i','p','t'].slice(0, 2); //['j','a']
['j','a','v','a','s','c','r','i','p','t'].slice(0, 3); //['j','a','v']
['j','a','v','a','s','c','r','i','p','t'].slice(5, 10); //['c','r','i','p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(5, -1); //['c','r','i','p']
['j','a','v','a','s','c','r','i','p','t'].slice(5, -2); //['c','r','i']
['j','a','v','a','s','c','r','i','p','t'].slice(-1); //['t']
['j','a','v','a','s','c','r','i','p','t'].slice(-2); //['p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(-3); //['i','p','t']
['j','a','v','a','s','c','r','i','p','t'].slice(-3, -1); //['i','p']
['j','a','v','a','s','c','r','i','p','t'].slice(-3, -2); //['i']
}
20. search()
"문자열".search(검색값)
"문자열".search(정규식표현)
"문자열".search(정규식표현)
- 문자열(정규식)을 검색하고, 위치값(숫자)을 반환합니다.
- 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
- 대소문자를 구별합니다.
{
"javascript reference".search("javascript"); //0
"javascript reference".search("reference"); //11
"javascript reference".search("r"); //6
"javascript reference".search("a"); //6
"javascript reference".search("jv"); //-1
"javascript reference".search("J"); //-1
"javascript reference".search(/reference/); //11
"javascript reference".search(/Reference/); //-1
"javascript reference".search(/Reference/i); //11 대문자를 소문자로 구별
"자바스크립트".search(/[a-z]/); //-1
"javascript reference".search(/[a-z]/g); //0
}
21.
22. split()
"문자열", split(구분자, [제한])
- 구분자를 이용하여, 여러개의 문자열(배열)을 반환합니다.
{
"javascript".split(""); //['j', 'a', 'v', 'a', 's', 'c', 'r', 'i', 'p', 't']
"java script".split(" "); //['java', 'script']
"java scr ipt".split(" "); //['java', 'scr', 'ipt']
"javascript".split("", 1); //['j']
"javascript".split("", 2); //['j', 'a']
"javascript".split("", 3); //['j', 'a', 'v']
"java script".split(" ", 1); //['java']
"java script".split(" ", 2); //['java', 'script']
"java script".split("j"); //['', 'avascript']
"java script".split("a"); //['j', 'v', 'script']
"java script".split("e"); //['javascript']
"java/scr/ipt".split("/"); //['java', 'scr', 'ipt']
"java&scr!ipt".split("&") //['java', 'scr!ipt']
"java&scr!ipt".split("!") //['java&scr', 'ipt']
"java&scr!ipt".split(/&|\!/) //['java', 'scr', 'ipt']
"javascript".split("").join(); //j,a,v,a,s,c,r,i,p,t
"javascript".split("").join("*") //j*a*v*a*s*c*r*i*p*t
"javascript".split("").reverse().join(); //t,p,i,r,c,s,a,v,a,j
"javascript".split("").reverse().join("/"); //t/p/i/r/c/s/a/v/a/j
}
23.
24.
25.
26.
27.
28.
29.
30. trim()
"문자열", trim()
- 문자열의 앞.뒤 공백을 제거하고, 새로운 문자열을 반환합니다.
{
"javascript".trim(""); //javascript
"javascript ".trim(""); //javascript
" javascript ".trim(""); //javascript
" java script ".trim(""); //java script
}
31. trimEnd()
"문자열", trim()
- 문자열의 뒤 공백을 제거하고, 새로운 문자열을 반환합니다.
{
"javascript ".trimEnd(""); //javascript
}
32. trimStart()
"문자열", trimStart()
- 문자열의 앞 공백을 제거하고, 새로운 문자열을 반환합니다.
{
" javascript ".trimStart(""); //javascript
}