JAVASCRIPT

문자열 메서드 몇가지 알아보기

이미사용 2023. 4. 22. 21:12
명언
-
728x90
반응형

at()

사용법:"문자열".at(위치값)

  • 배열과 문자열에서 사용가능 하지만 주로 배열에서 사용 합니다.
  • 배열(Array) 객체의 메서드 중 하나로, 특정 인덱스(index)에 해당하는 요소(element)를 반환합니다.
  • 배열의 인덱스가 유효하지 않을 경우 undefined를 반환하며, 배열의 범위를 초과하는 인덱스를 사용하려고 하면 RangeError를 발생시킵니다.
{
    "javascript refercence".at(0);  //"j"
    "javascript refercence".at(1);  //"a"
    "javascript refercence".at(10); //" "
    "javascript refercence".at(-1); //"e"
    "javascript refercence".at(-12); //"t"
    "javascript refercence".at(30); //undefined
}

 

charAt

사용법: "문자열".charAt(위치값)

  • 문자열(String) 객체의 메서드 중 하나로, 특정 인덱스(index)에 해당하는 문자(character)를 반환합니다.
  • 주어진 인덱스의 문자를 반환합니다. 인덱스가 유효하지 않은 경우, 즉 문자열의 길이를 벗어나는 인덱스를 사용하는 경우, 빈 문자열('')을 반환합니다.
{
    "javascript refercence".charAt(0);   //"j"
    "javascript refercence".charAt(1);   //"a"
    "javascript refercence".charAt(10);  //" "
    "javascript refercence".charAt(-1);  //"" //-를 붙이면 빈문자열이나옴
    "javascript refercence".charAt(-12); //""
    "javascript refercence".charAt(30);  //""
}

 

charCodeAt()

사용법: "문자열".charCodeAt(위치값)

  • 특정 인덱스(index)에 해당하는 문자(character)의 코드 유닛값(Unicode code point)을 반환합니다.
  • 코드 유닛값(Unicode code point)이란 프로그램에서 문자를 인식하기 위한 유니코드(Unicode) 인코딩 방식 중 하나입니다.
  • 인덱스가 문자열의 범위를 벗어나는 경우 NaN을 반환합니다
{
    "javascript refercence".charCodeAt(0);  //106
    "javascript refercence".charCodeAt(1);  //97
    "javascript refercence".charCodeAt(10); //32
    "javascript refercence".charCodeAt(-1); //NaN //-를 붙이면 NaN이나옴
    "javascript refercence".charCodeAt(-12); //NaN
    "javascript refercence".charCodeAt(30); //NaN
}

 

codePointAt()

사용법: "문자열".codePointAt(위치값)

  • 특정 위치(index)에 있는 문자(character)의 코드 포인트(code point)를 반환합니다.
  • 코드 포인트란 유니코드(Unicode)에서 문자를 나타내기 위해 할당된 고유한 값을 의미합니다. 이 값은 UTF-16에서 2바이트 이상의 문자를 표현할 때에는 여러 개의 유니코드 코드 포인트를 결합하여 만들어집니다.
  • 인덱스가 문자열의 범위를 벗어나는 경우 undefined 을 반환합니다
{
    "javascript refercence".codePointAt(0);  //106
    "javascript refercence".codePointAt(1);  //97
    "javascript refercence".codePointAt(10); //32
    "javascript refercence".codePointAt(-1); //undefined //-를 붙이면 undefined가나옴
    "javascript refercence".codePointAt(-12); //undefined
    "javascript refercence".codePointAt(30); //undefined
}

 

concat()

사용법: 배열1.concat(배열2)

  • 두 개 이상의 배열을 연결(concatenate)하여 새로운 배열을 만듭니다.
  • 기존의 배열에 새로운 요소를 추가하는 push() 메서드와는 달리, 두 개 이상의 배열을 연결하여 하나의 배열로 만드는 것이 목적입니다. 이 메서드는 인자로 전달한 배열들을 연결하여 새로운 배열을 반환하며, 원본 배열은 변경되지 않습니다.
{
    const arr1 = ["javascript"];
    const arr2 = ["refercence"];
    const arr3 = arr1.concat(arr2);

    console.log(arr3); //['javascript', 'refercence']

    const arr1 = [1,2,3];
    const arr2 = [1,2,3,4];
    const arr3 = arr1.concat(arr2);

    console.log(arr3); //[1, 2, 3, 1, 2, 3, 4]

    const arr1 = [1,2,3];
    const arr2 = ["javascript"];
    const arr3 = arr1.concat(arr2);

    console.log(arr3); //[1, 2, 3, 'javascript']
}

 

localeCompare()

사용법: "문자열1".localeCompare("문자열2")

  • 두 개의 문자열을 비교하여 현재 로캘(locale)에서의 정렬 순서를 기준으로 결과를 반환합니다.
  • 인자로 전달된 문자열과 메서드를 호출한 문자열을 비교합니다. 이때, 비교는 현재 로캘에서의 문자열 정렬 순서를 기준으로 수행됩니다. 즉, 로캘에 따라 문자열의 정렬 순서가 달라질 수 있습니다.
  • 만약 두 문자열이 동일하다면, 0을 반환합니다.
  • 메서드를 호출한 문자열이 인자로 전달된 문자열보다 로캘에서 앞선다면, 음수를 반환합니다.
  • 메서드를 호출한 문자열이 인자로 전달된 문자열보다 로캘에서 뒤에 있다면, 양수를 반환합니다.
{
    const str1  = "javascript";
    const str2  = "refercence";
    const str3  = str1.localeCompare(str2);

    console.log(str3); //-1

    const str1  = "javascript";
    const str2  = "refercence";

    console.log(str2.localeCompare(str1)); //1

    const str1  = "javascript";
    const str2  = "refercence";
    const str3  = str1.localeCompare(str1);

    console.log(str3); //0

    console.log("javascript".localeCompare("refercence")); //-1
    console.log("refercence".localeCompare("javascript")); //1
    console.log("javascript".localeCompare("javascript")); //0
}

 

normalize()

사용법: "문자열1"normalize() === "문자열2".normalize()

"문자열"normalize(Unicode 정규화 방식)

  • 문자열에서 발생하는 Unicode 정규화 문제를 해결하기 위해 사용됩니다.
  • Unicode는 문자를 표현하는 표준 방식이지만, 문자를 표현하는 방법이 여러 가지로 나뉘어져 있습니다. 이러한 다양한 표현 방식으로 인해 문자열 비교, 검색, 정렬 등의 작업이 원하는 결과를 내지 못할 수 있습니다. 이때, normalize() 메서드를 사용하여 문자열을 표준화하여 사용할 수 있습니다.
  • "ä"와 "ä"는 눈으로 보면 같은 문자이지만, Unicode에서는 다른 문자입니다. "ä"와 "ä"가 포함된 문자열을 "NFC" 방식으로 정규화하면, 두 문자열이 동일한 값으로 정규화됩니다.
  • Unicode 정규화 방식을 나타내는 4가지 값을 사용할 수 있습니다.
    ""NFC": Canonical Decomposition followed by Canonical Composition
    "NFD": Canonical Decomposition
    "NFKC": Compatibility Decomposition followed by Canonical Composition
    "NFKD": Compatibility Decomposition
{
    const str1 = "cafe\u0301";
    const str2 = "caf\u00e9";
        
    console.log(str1 === str2); // false
    console.log(str1.normalize() === str2.normalize()); // true


    const str = "안녕하세요";
    const strDecomposed = str.normalize("NFD");
    const strComposed = str.normalize("NFC");

    console.log(strDecomposed); // "안녕하세요"
    console.log(strComposed); // "안녕하세요"
    console.log(strDecomposed === strComposed); // false
}

 

padEnd()

사용법: "문자열".padEnd(새로운문자열길이설정,"끝부분에 추가 할 문자열")

  • 메서드는 문자열의 끝에 다른 문자열을 추가하여 지정한 길이만큼의 새로운 문자열을 생성합니다.
  • 만약 추가할 문자열의 길이가 지정한 길이에 도달하면 추가하지 않습니다.
  • 주로 출력할 문자열의 길이를 일정하게 유지해야 할 때 사용합니다.
{
    const str = "javascript";

    console.log(str.padEnd(21, " refercence")); // "javascript refercence"
    console.log(str.padEnd(15, " refercence")); // "javascript refe"
    console.log(str.padEnd(5, ".")); // "javascript"
    console.log(str.padEnd(15)); // "javascript     "
    console.log(str.padEnd(15, ".")); // "javascript....."
}

 

padStart()

사용법: "문자열".padEnd(새로운문자열길이설정,"시작부분에 추가 할 문자열")

  • 문자열의 시작 부분에 다른 문자열을 추가하여 지정한 길이만큼의 새로운 문자열을 생성합니다.
  • 만약 추가할 문자열의 길이가 지정한 길이에 도달하면 추가하지 않습니다.
  • 주로 출력할 문자열의 길이를 일정하게 유지해야 할 때 사용합니다.
{
    const str = "javascript";

    console.log(str.padStart(21, " refercence")); // " refercencejavascript"
    console.log(str.padStart(15, " refercence")); // " refejavascript"
    console.log(str.padStart(5, ".")); // "javascript"
    console.log(str.padStart(15)); // "     javascript"
    console.log(str.padStart(15, ".")); // ".....javascript"
}

 

repeat()

사용법: "문자열".repeat(반복횟수)

  • 문자열을 지정한 횟수만큼 반복하여 새로운 문자열을 반환합니다.
  • 양의 정수입니다. 0과 음수는 RangeError 예외를 발생시킵니다.
  • 0으로 설정하면 빈 문자열 ""이 생성됩니다.
{
    const str = "javascript";

    console.log(str.repeat(3)); // "javascriptjavascriptjavascript"
    console.log(str.repeat(0)); // ""
    console.log(str.repeat(-1)); // RangeError
}