728x90
반응형
자바스크립트 문자열 객체(2)
string.prototype.at( )
지정한 숫자(index)를 받아, 문자열에서 해당 되는 인덱스의 요소를 반환합니다.
문자열에서 위치값에 따라 특정 위치의 문자를 가져올 수 있습니다.
위치값이 음수일 경우 뒤에서부터 시작합니다.
위치값에 위치 해있는 문자열이 없으면 'undefined'가 출력됩니다.
기본형 : "문자열".at(위치값)
예시
{
"javascript reference".at(0) // j
"javascript reference".at(3) // a
"javascript reference".at(5) // c
"javascript reference".at(10) // 빈문자열
"javascript reference".at(11) // r
"javascript reference".at(12) // e
"javascript reference".at(-1) // e
"javascript reference".at(-2) // c
"javascript reference".at(-5) // r
"javascript reference".at(22) // undefined
console.log("문자열".at(위치값));
}
string.prototype.charAt( )
지정한 숫자(index)를 받아, 문자열에서 해당 되는 인덱스의 단일문자를 반환합니다.
문자열에서 위치값에 따라 특정 위치의 문자를 가져올 수 있습니다.
기본형 : "문자열".charAt(위치값)
예시
{
"javascript reference".charAt(0) // j
"javascript reference".charAt(3) // a
"javascript reference".charAt(5) // c
"javascript reference".charAt(10) // 빈문자열
"javascript reference".charAt(11) // r
"javascript reference".charAt(12) // e
console.log("문자열".charAt(위치값));
}
string.prototype.charCodeAt( )
지정한 숫자(index)를 받아, 문자열에서 해당 되는 인덱스의 유니코드 정수 값을 반환합니다.
문자열에서 지정된 위치에 있는 UTF-16 코드 유닛의 값을 반환합니다.
위치값에 위치 해있는 문자열이 없거나 위치값의 값이 음수이면 'NaN'이 출력됩니다.
기본형 : "문자열".charCodeAt(위치값)
예시
{
"javascript reference".charCodeAt(0) // j의 UTF-16 코드 유닛 값 : 106
"javascript reference".charCodeAt(3) // a의 UTF-16 코드 유닛 값 : 97
"javascript reference".charCodeAt(5) // c의 UTF-16 코드 유닛 값 : 99
"javascript reference".charCodeAt(10) // 빈문자열의 UTF-16 코드 유닛 값 : 32
"javascript reference".charCodeAt(11) // r의 UTF-16 코드 유닛 값 : 114
"javascript reference".charCodeAt(12) // e의 UTF-16 코드 유닛 값 : 101
"javascript reference".charCodeAt(-1) // NaN
"javascript reference".charCodeAt(22) // NaN
console.log("문자열".charCodeAt(위치값));
}
참고
- UTF-16 코드 유닛
UTF-16 코드 유닛은 문자열 내의 각 문자를 표현하는 데 사용되는 16비트(2바이트)의 코드 값입니다.
UTF-16은 유니코드 문자를 표현하는 방법 중 하나로, 유니코드 문자를 2바이트 코드 유닛으로 표현합니다.
UTF-16은 기본적으로 빅 엔디안(Big-Endian) 방식으로 코드 유닛을 저장합니다.
빅 엔디안은 상위 바이트(높은 자리수)부터 메모리에 저장하는 방식으로, 상위 바이트를 먼저 읽어들이게 됩니다.
반대로 리틀 엔디안(Little-Endian)은 하위 바이트(낮은 자리수)부터 메모리에 저장하는 방식으로, 하위 바이트를 먼저 읽어들입니다.
string.prototype.codePointAt( )
지정한 숫자(index)를 받아, 문자열에서 해당 되는 인덱스의 유니코드 포인트 정수 값을 반환합니다.
문자열에서 지정된 위치에 있는 UTF-16 코드 유닛의 값을 반환합니다.
위치값에 위치 해있는 문자열이 없거나 위치값의 값이 음수이면 'undefined'이 출력됩니다.
기본형 : "문자열".codePointAt(위치값)
예시
{
"javascript reference".codePointAt(0) // j의 UTF-16 유니코드 포인트 정수 값 : 106
"javascript reference".charCodeAt(3) // a의 UTF-16 유니코드 포인트 정수 값 : 97
"javascript reference".charCodeAt(5) // c의 UTF-16 유니코드 포인트 정수 값 : 99
"javascript reference".charCodeAt(10) // 빈문자열의 UTF-16 유니코드 포인트 정수 값 : 32
"javascript reference".charCodeAt(11) // r의 UTF-16 유니코드 포인트 정수 값 : 114
"javascript reference".charCodeAt(12) // e의 UTF-16 유니코드 포인트 정수 값 : 101
"javascript reference".charCodeAt(-1) // undefined
"javascript reference".charCodeAt(22) // undefined
console.log("문자열".codePointAt(위치값));
}
참고
- charCodeAt( )와 codePointAt( ) 다른 점
둘 다 문자열에서 지정된 위치에 있는 문자의 유니코드 값을 반환하지만, 처리하는 방식이 다릅니다.
charCodeAt( ) 메소드는 문자열에서 지정된 위치에 있는 문자의 UTF-16 코드 유닛 값을 반환합니다. 이 메소드는 문자열의 길이가 2바이트를 초과하는 경우 첫 번째 코드 유닛을 반환합니다. 이 방식으로는 대리 코드 포인트(서로 다른 두 개의 16비트 코드 유닛으로 이루어진 하나의 문자)를 처리할 수 없습니다.
반면에 codePointAt( ) 메소드는 문자열에서 지정된 위치에 있는 문자의 유니코드 코드 포인트 값을 반환합니다. 이 메소드는 대리 코드 포인트를 처리할 수 있으며, 문자열의 길이가 2바이트를 초과하는 문자를 올바르게 처리할 수 있습니다.
string.prototype.concat( )
매개변수로 전달된 문자열을 받어, 결합된 새로운 문자열을 반환합니다.
기본형 : "문자열".concat("문자열")
예시
{
const str1 = "java";
const str2 = "script";
const result1 = str1.concat(str2);
console.log(result1); // javascript
const str3 = "javascript";
const str4 = "reference";
const result2 = str1.concat(' ', str4);
console.log(result2); // javascript reference
}
string.prototype.localeCompare( )
문자열과 문자열을 비교하여, 수치(음수, 양수, 0)을 반환합니다.
호출한 문자열과 매개변수로 전달된 문자열을 사전순으로 비교합니다.
호출한 문자열이 매개변수로 전달된 문자열보다 앞에 오는 경우, -1을 반환합니다.
호출한 문자열이 매개변수로 전달된 문자열과 같은 경우, 0을 반환합니다.
호출한 문자열이 매개변수로 전달된 문자열보다 뒤에 오는 경우, 1을 반환합니다.
기본형 : "문자열".localeCompare("문자열")
예시
{
const str1 = "java";
const str2 = "script";
const str3 = "Java";
const str4 = "reference";
const str5 = "Reference";
console.log(str1.localeCompare(str2)); // -1
console.log(str2.localeCompare(str1)); // 1
console.log(str1.localeCompare(str3)); // -1
console.log(str3.localeCompare(str1)); // 1
console.log(str4.localeCompare(str5)); // -1
console.log(str5.localeCompare(str4)); // 1
console.log(str1.localeCompare(str1)); // 0
}
string.prototype.normalize( )
주어진 문자열을 정규화된 형태로 반환합니다.
유니코드 문자열을 정규화(normalization)합니다.
정규화 방식은 'NFC', 'NFD', 'NFKC', 'NFKD' 입니다.
만약 생략되거나 undefined일 경우 'NFC'를 사용합니다.
기본형 : "문자열(유니코드 문자열)".normalize("정규화")
예시
{
// 문자열
"javascript".normalize("NFC"); // javascript
"javascript".normalize("NFD"); // javascript
"javascript".normalize("NFKC"); // javascript
"javascript".normalize("NFKD"); // javascript
// 유니코드 문자열
"\u0041\u0308".normalize("NFC"); // 'Ä'
"\u0041\u0308".normalize("NFD"); // 'Ä'
"\u0041\u0308".normalize("NFKC"); // 'Ä'
"\u0041\u0308".normalize("NFKD"); // 'Ä'
console.log("문자열(유니코드 문자열)".normalize("정규화"));
}
참고
- 정규화 방식
"NFC" : Canonical Composition (NFC)를 수행합니다.
"NFD" : Canonical Decomposition (NFD)를 수행합니다.
"NFKC" : Compatibility Composition (NFKC)를 수행합니다.
"NFKD" : Compatibility Decomposition (NFKD)를 수행합니다.
이 중에서 대부분의 경우 "NFC" 또는 "NFKC" 옵션을 사용합니다.
- 유니코드 문자열
유니코드 문자열(Unicode string)은 유니코드(Unicode) 문자 집합을 사용하여 인코딩된 문자열을 의미합니다.
유니코드는 전 세계의 모든 문자와 기호를 포함하는 문자 집합입니다.
이는 다양한 언어, 기호, 이모티콘 등을 포함하고 있으며, 각각의 문자는 고유한 코드 포인트(숫자 값)를 가지고 있습니다.
string.prototype.padEnd( )
주어진 길이에 맞게 뒤 문자열을 채우고, 새로운 문자열을 반환합니다.
매개변수를 지정하지 않으면 기본값인 공백이 사용됩니다.
기본형 : "문자열".padEnd(문자열의 길이, [선택적 매개변수])
예시
{
"javascript".padEnd(5); // javascript
"javascript".padEnd(15); // javascript
"javascript".padEnd(15, '-'); // javascript-----
"javascript".padEnd(15, '^'); // javascript^^^^^
"javascript".padEnd(12, '!'); // javascript!!
"javascript".padEnd(12, 'ref'); // javascriptre 생성될 문자열 길이의 값까지만 변수 생성
console.log("문자열".padEnd(문자열의 길이, [선택적 매개변수]));
}
string.prototype.padStart( )
주어진 길이에 맞게 앞 문자열을 채우고, 새로운 문자열을 반환합니다.
매개변수를 지정하지 않으면 기본값인 공백이 사용됩니다.
기본형 : "문자열".padStart(문자열이의 길이, [선택적 매개변수])
예시
{
"javascript".padStart(5); // javascript
"javascript".padStart(15); // javascript
"javascript".padStart(15, '-'); // -----javascript
"javascript".padStart(15, '^'); // ^^^^^javascript
"javascript".padStart(12, '!'); // !!javascript
"javascript".padStart(12, 'ref'); // rejavascript 생성될 문자열 길이의 값까지만 변수 생성(선택적 매개변수 입력 후 입력되지 않은 문자는 삭제)
console.log("문자열".padStart(문자열의 길이, [선택적 매개변수]));
}
string.prototype.repeat( )
주어진 횟수만큼 반복 복사하여, 새로운 문자열을 반환합니다.
반복할 횟수의 값은 0 이상의 정수이어야 합니다.
기본형 : "문자열".repeat(반복할 횟수)
예시
{
"java".repeat(3); // javajavajava
"java".repeat(5); // javajavajavajavajava
"script".repeat(3); // scriptscriptscript
"jQuery".repeat(3); // jQueryjQueryjQuery
console.log("문자열".repeat(반복할 횟수));
}
728x90
반응형