본 문서는 2022년 1월 31일 에 작성되었다.
일반적으로 해당 클래스의 인스턴스를 반환하는 함수를 Constructor 라고 부릅니다.
하지만 문자열 인스턴스는 String Literal, Template Literal 방식이 더 존재 합니다.
const str=new String("hello");
The String object is used to represent and manipulate a sequence of characters.
String mdn
우리가 사용하는 문자열은 String 클래스의 인스턴스입니다.
따라서 해당 인스턴스에서는 String.prototype.function 에 접근할 수 있습니다.
const str="hello";
const str='hello';
Template literals are literals delimited with backticks (`), allowing embedded expressions called substitutions.
Template Literal mdn
문자열 안에 변수를 깔끔하게 넣고 싶다면 Template Ltieral 을 사용하면 됩니다.
문자열을 백틱( ` ) 으로 감싸고 변수를 달러($) + 브라켓( { } ) 로 감싸면 됩니다. 다음의 코드를 참고하세요.
const str='unchaptered';
const str2=`Hello! My name is ${unchpatered}`;
다른 클래스(Array,Set,Map, ... ) 에서는 생성자와 함수를 연달아 소개했습니다.
해당 클래스들은 Tour 함수 라는 테두리 안에 순회를 하면서 특정한 로직을 실행하는 forEach 와 같은 인스턴스 함수 를 소개했습니다.
하지만, 문자열은 Array이 아니며 따라서 Loop 를 사용하는 방법 을 언급하려고 합니다.
그 중에서도,
후술할 Function 을 사용하지 않고 문자열의 각 칸에 접근하여 값을 얻는 방법을 언급하겠습니다.
const texts="abcdefghijklmnopqrstuvwxyz"; // 길이 26
for (const text of texts) {
console.log(text);
}
index 가 필요하다면...
const texts="abcdefghijklmnopqrstuvwxyz"; // 길이 26
for (let index=0; index<texts.length; index++) {
console.log(texts.charAt(index));
}
문자열의 함수는 너무 많습니다.
따라서, 꼭 사용의 이점이 있어서 사용할만한 함수 만을 소개하기로 하였습니다.
단, 너무 특별한 상황에 사용될 함수는 포함하지 않았습니다.
갑자기 사라질지 누가알아요... ㅠㅠ
trim 관련 함수는 문자열에서 공백을 지우는 함수입니다.
trim 은 문자열의 양 끝의 공백을
trimStart 는 문자열의 시작의 공백만을
trimEend 는 문자열의 끝의 공백만을 제거합니다.
" hello ".trim(); // "hello";
이는 문자열을 대소문자로 바꾸는 함수입니다.
문자열의 외관이 아닌 실체가 변경된다는 점에서,
css 의 lowercase, uppercase 와는 다릅니다.
문자열의 \ 혹은 / 표시 등이 제거되거나 변경되는 것을 막을 수 있습니다.
자세한 내용은 String.raw() mdn 의 함수를 실행해보세요.
유니코드 형태의 문자열과 변환 타입(NFC 등) 을 매개변수로 넘겨주면, 유니코드 문자열을 일반적인 문자열로 바꿔줍니다.
문자열을 넘겨주면 해당 문자열을 가지고 문자열의 내부에 영향을 줍니다.
단, 자세한 내용은 String mdn 을 참고해주세요.
또한,
정규표현식을 사용하면 더욱 강력한 기능을 구현할 수 있습니다.