Javascript

문자열 객체 10가지를 알아봅시다!

아라라_ 2023. 4. 22. 23:58

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

Frederick Philips Brooks
Mythical Man-Month 저자
728x90

at()

()안에 숫자를 index로 받아 문자열에 해당 되는 인덱스의 요소를 반환합니다.
배열에도 사용가능하며 정수값을 받아 utf-16코드 단위로 구성된 새 string을 반환

"Live positive".at("3");        // e
"Live positive".at("6");        // o(띄여쓰기 무시)
"Live positive".at("10");       // i
"Live positive".at("20");       // undefined

"Live positive".at("-3");        // i
"Live positive".at("-6");        // s
"Live positive".at("-10");       // e(띄여쓰기 무시)
"Live positive".at("-20");       // undefined

"Live positive".at("e");        // L(문자는 우연히 1로 변환하여 L을 받아드립니다.)
"Live positive".at("p");        // L
"Live positive".at("pos");      // L

"Live positive".at("p9");       // L
"Live positive".at("p","o");    // L
"Live positive".at("Live");     // L

"Live positive".at(0);          // L
"Live positive".at(4);          //   (띄여쓰기까지 포함되어 4번째 인 띄여쓰기가 출력됩)
"Live positive".at(10);         // i
"Live positive".at(20);         // undefined

"Live positive".at(-4);         // t
"Live positive".at(-10);        // e
"Live positive".at(-20);        // undefined

 

charAt()

String 차입의 데이터(문자열)에서 특정 문자르 char 타입으로 변환 할때 사용하는 함수
문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환
유니코드는 ASCII코드와 달리 16비트 이상의 다양한 비트 수를 사용하여 문자를 표현합니다

"Live positive".charAt("3");        // e
"Live positive".charAt("6");        // o(띄여쓰기 무시)
"Live positive".charAt("10");       // i
"Live positive".charAt("20");       // undefined(아무것도 안나오지만 undefined를 출력한 것임)

"Live positive".charAt("-3");        // undefined (음수 인덱스는 받을 수 없어 undefined가 출력됨)
"Live positive".charAt("-6");        // undefined 
"Live positive".charAt("-10");       // undefined
"Live positive".charAt("-20");       // undefined

"Live positive".charAt("e");        // L(문자는 우연히 1로 변환하여 L을 받아드립니다.)
"Live positive".charAt("p");        // L
"Live positive".charAt("pos");      // L

"Live positive".charAt("p9");       // L
"Live positive".charAt("p","o");    // L
"Live positive".charAt("Live");     // L

"Live positive".charAt(0);          // L
"Live positive".charAt(4);          //   (띄여쓰기까지 포함되어 4번째 인 띄여쓰기가 출력됩)
"Live positive".charAt(10);         // i
"Live positive".charAt(20);         // undefined

"Live positive".charAt(-4);         // undefined (음수는 받을 수 없으므로)
"Live positive".charAt(-10);        // undefined
"Live positive".charAt(-20);        // undefined

 

charCodeAt()

index에 해당하는 문자의 UTF-16 코드 값을 리턴합니다.
0에서 65535 사이의 숫자를 반환

"Live positive".charCodeAt("3");        // e = 101
"Live positive".charCodeAt("6");        // o = 111(띄여쓰기 무시)
"Live positive".charCodeAt("10");       // i = 105
"Live positive".charCodeAt("20");       // NaN(아무것도 안나오지만 NaN를 출력한 것임)

"Live positive".charCodeAt("-3");        // NaN (음수 인덱스는 받을 수 없어 NaN가 출력됨)
"Live positive".charCodeAt("-6");        // NaN 
"Live positive".charCodeAt("-10");       // NaN
"Live positive".charCodeAt("-20");       // NaN

"Live positive".charCodeAt("e");        // L = 76(정상적인 결과값이 아님/다른 브라우저에서는 원래라면 NaN을 반환함)
"Live positive".charCodeAt("p");        // L = 76(정상적인 결과값이 아님)
"Live positive".charCodeAt("pos");      // L = 76(정상적인 결과값이 아님)

"Live positive".charCodeAt("p9");       // L = 76(정상적인 결과값이 아님)
"Live positive".charCodeAt("p","o");    // L = 76(정상적인 결과값이 아님)
"Live positive".charCodeAt("Live");     // L = 76(정상적인 결과값이 아님)
"Live positive".charCodeAt("Live positive rrr")      // L = 76(정상적인 결과값이 아님)

"Live positive".charCodeAt(0);          // L = 76
"Live positive".charCodeAt(4);          // p = 32(띄여쓰기 무시)
"Live positive".charCodeAt(10);         // i = 105
"Live positive".charCodeAt(20);         // NaN

"Live positive".charCodeAt(-4);         // NaN
"Live positive".charCodeAt(-10);        // NaN
"Live positive".charCodeAt(-20);        // NaN

 

 

codePointAt()

문자열에서 인덱스에 대한 유니코드 포인트 값이 아닌 정수를 반환하빈다.
주어진 인덱스 위치의 코드 포인트를 반환하며 이모지까지도 정확하고 올바르게 잔환할수 있습니다.
https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_0000~0FFF

"Live positive".codePointAt("3");        // e = 101
"Live positive".codePointAt("6");        // o = 111(띄여쓰기 무시)
"Live positive".codePointAt("10");       // i = 105
"Live positive".codePointAt("20");       // undefined(아무것도 안나오지만 undefined를 출력한 것임)

"Live positive".codePointAt("-3");        // undefined (음수 인덱스는 받을 수 없어 undefined가 출력됨)
"Live positive".codePointAt("-6");        // undefined 
"Live positive".codePointAt("-10");       // undefined
"Live positive".codePointAt("-20");       // undefined

"Live positive".codePointAt("e");        // L = 76(정상적인 결과값이 아님/다른 브라우저에서는 원래라면 undefined을 반환함)
"Live positive".codePointAt("p");        // L = 76(정상적인 결과값이 아님)
"Live positive".codePointAt("pos");      // L = 76(정상적인 결과값이 아님)

"Live positive".codePointAt("p9");       // L = 76(정상적인 결과값이 아님)
"Live positive".codePointAt("p","o");    // L = 76(정상적인 결과값이 아님)
"Live positive".codePointAt("Live");     // L = 76(정상적인 결과값이 아님)
"Live positive".codePointAt("Live positive rrr")      // L = 76(정상적인 결과값이 아님)
"🤔".charPointAt("🤔")                 // 1293000

"Live positive".codePointAt(0);          // L = 76
"Live positive".codePointAt(4);          // p = 32(띄여쓰기 무시)
"Live positive".codePointAt(10);         // i = 105
"Live positive".codePointAt(20);         // undefined

"Live positive".codePointAt(-4);         // undefined
"Live positive".codePointAt(-10);        // undefined
"Live positive".codePointAt(-20);        // undefined

 

concat()

문자열이나 배열을 이어붙이는 역할을 합니다.
기존의 문자열이나 배열을 수정하지 않고 새로운 문자열이나 배열을 반환합니다.

const str1 = 'Live';
const str2 = 'positive';
const str3 = str1.concat(' ',str2);
console.log(str3);  //

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.concat(arr2);
console.log(arr3); // [1, 2, 3, 4, 5, 6]

 

localeCompare()

참조조문자열이 정렬 순으로 지정딘 문자열 앞 혹은 뒤에 오는지 또는 동일한 문자열인지 나타내는 숫치를 반환
앞에 있으면 -1 뒤에 있으면 1 동일한 위치(같은 변수)면 0

const str1 = 'Live';
const str2 = 'positive';
const str3 = 'javascript';

console.log(str1.localeCompare(str2)); // -1
console.log(str2.localeCompare(str1)); // 1
console.log(str2.localeCompare(str3)); // 1
console.log(str3.localeCompare(str2)); // -1
console.log(str1.localeCompare(str1)); // 0

 

normalize()

주어진 문자열을 유니코드 정규화 방식에 따라 정규화된 형태로 반환합니다.
주어진 값이 문자열이 아닌 경우에는 문자열로 변환후 정규화를 합니다.

NFC(normalization form C): 정준 분해를 수행한 후 재결합하여 정규화된 문자열을 반환합니다.
NFD(normalization form D): 정준 분해만 수행한 후 반환합니다.
NFKC(normalization form KC): NFC와 비슷하게 동작하지만, 호환성 문자를 정규화합니다.
NFKD(normalization form KD): NFD와 비슷하게 동작하지만, 호환성 문자를 정규화합니다.

const str = 'Live';

console.log(str.normalize());           // Live
console.log(str.normalize('NFC'));      // Live (어째서? 이게 맞나?)
console.log(str.normalize('NFD'));      // Live
console.log(str.normalize('NFKC'));     // Live
console.log(str.normalize('NFKD'));     // Live

 

padEnd()

현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다.
채워넣기는 대상 문자열의 끝(우측)부터 적용됩니다.
기존 문자열 길이 + 남는 자리

const str = 'Live';

console.log(str.padEnd(1));           // 'Live'
console.log(str.padEnd(5));           // 'Live '
console.log(str.padEnd(10));           // 'Live      '
console.log(str.padEnd(1,'?'));           // 'Live'
console.log(str.padEnd(5,'?'));           // 'Live?'
console.log(str.padEnd(10,'?'));           // 'Live??????'

console.log(str.padEnd(-1));           // 'Live'
console.log(str.padEnd(-5));           // 'Live'
console.log(str.padEnd(-10));           // 'Live'
console.log(str.padEnd(-1,'?'));           // 'Live'
console.log(str.padEnd(-5,'?'));           // 'Live'
console.log(str.padEnd(-10,'?'));           // 'Live'

 

padStart()

현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다.
채워넣기는 대상 문자열의 시작(좌측)부터 적용됩니다.
기존 문자열 길이 + 남는 자리

const str = 'Live';

console.log(str.padStart(1));           // 'Live'
console.log(str.padStart(5));           // ' Live'
console.log(str.padStart(10));           // '      Live'
console.log(str.padStart(1,'?'));           // 'Live'
console.log(str.padStart(5,'?'));           // '?Live'
console.log(str.padStart(10,'?'));           // '??????Live'

console.log(str.padStart(-1));           // 'Live'
console.log(str.padStart(-5));           // 'Live'
console.log(str.padStart(-10));           // 'Live'
console.log(str.padStart(-1,'?'));           // 'Live'
console.log(str.padStart(-5,'?'));           // 'Live'
console.log(str.padStart(-10,'?'));           // 'Live'

 

repeat()

문자열을 주어진 횟수마큼 반복해 새로운 문자열을 반환합니다.
하나의 매개변수를 받으며 이 매개변수는 반복할 횟수를 나타내며 0이상의 정수여야합니다.

const str = 'Live';

console.log(str.repeat(1));           // 'Live'
console.log(str.repeat(5));           // ' LiveLiveLiveLiveLive'
console.log(str.repeat(10));           // 'LiveLiveLiveLiveLiveLiveLiveLiveLiveLive'
console.log(str.repeat(1,'?'));           // 'Live'
console.log(str.repeat(5,'?'));           // 'LiveLiveLiveLiveLive'
console.log(str.repeat(10,'?'));           // 'LiveLiveLiveLiveLiveLiveLiveLiveLiveLive'

console.log(str.repeat(-1));           // ERROR(음수이기때문에)

 

 

참고

https://jo0132.github.io/web2023/javascript/javascript05.html