01. 문자열 메서드 : at()

"문자열".at()
  • 문자열에서 지정된 인덱스에 있는 문자를 반환합니다. 인덱스가 음수이면 문자열의 끝에서부터 거꾸로 인덱싱됩니다.

        const str = 'hello';
        console.log(str.at(1)); // 'e'
        console.log(str.at(-1)); // 'o'
    

02. 문자열 메서드 : charAt()

"문자열".charAt()
  • 문자열에서 지정된 인덱스에 있는 문자를 반환합니다.
  • 인덱스가 문자열의 길이보다 크거나 같으면 빈 문자열을 반환합니다.

    const str = 'hello';
    console.log(str.at(1)); // 'e'
    console.log(str.at(-1)); // 'o'

03. 문자열 메서드 : charCodeAt()

"문자열".charCodeAt()
  • 문자열에서 지정된 인덱스에 있는 문자의 유니코드 값을 반환합니다.
  • 인덱스가 문자열의 길이보다 크거나 같으면 NaN을 반환합니다.

    const str = 'hello';
    console.log(str.charCodeAt(1)); // 101 (e의 유니코드 값)
    console.log(str.charCodeAt(10)); // NaN

04. 문자열 메서드 : charCodeAt()

"문자열".charCodeAt()
  • 메서드: 문자열에서 지정된 인덱스에 있는 문자의 유니코드 코드 포인트 값을 반환합니다.
  • 인덱스가 문자열의 길이보다 크거나 같으면 undefined를 반환합니다.

    const str = '👋🏻hello';
    console.log(str.codePointAt(0)); // 128075 (👋의 코드 포인트 값)
    console.log(str.codePointAt(2)); // 104 (h의 코드 포인트 값)
    console.log(str.codePointAt(10)); // undefined

05. 문자열 메서드 : concat()

"문자열".concat()
  • 메서드: 인수로 전달된 문자열들을 현재 문자열과 연결한 새로운 문자열을 반환합니다.

    const str1 = 'hello';
    const str2 = 'world';
    console.log(str1.concat(' ', str2)); // 'hello world'

06. 문자열 메서드 : .includes(검색값, [위치값])

"문자열".includes()
  • 문자열 포함 여부를 검색하여, 불린(true, false)을 반환합니다.
  • 대소문자를 구별합니다.

    console.log( "javascript reference".includes("javascript"))
    console.log( "javascript reference".includes("J"))
    console.log( "javascript reference".includes("j"))
    console.log( "javascript reference".includes("a"))
    console.log( "javascript reference".includes("reference",11))
    console.log( "javascript reference".includes("reference",12))

07. 문자열 메서드 : .indexOf()(검색값, [위치값])

"문자열".indexOf()
    • 문자열을 검색하여, 주어진 값과 일치하는 첫 번째 위치값(index)을 반환합니다.
    • 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
    • 대소문자를 구별합니다.

    console.log("javascript refercence".indexOf("javascripts"))  //-1
    console.log("javascript refercence".indexOf("j"))  //0
    console.log("javascript refercence".indexOf("J"))  //-1
    console.log("javascript refercence".indexOf("a"))  //1
    console.log("javascript refercence".indexOf("ja"))  //0
    console.log("javascript refercence".indexOf("jv"))  //-1
    console.log("javascript refercence".indexOf("refercence"))  //11
    console.log("javascript refercence".indexOf("r"))  //6
    console.log("javascript refercence".indexOf("re"))  //11
    
    console.log("javascript refercence".indexOf("javascripts",0))  //0
    console.log("javascript refercence".indexOf("javascripts",1))  //-1
    console.log("javascript refercence".indexOf("refercence",0))  //11
    console.log("javascript refercence".indexOf("refercence",11))  //11
    console.log("javascript refercence".indexOf("refercence",12))  //-1
    console.log("javascript refercence".indexOf("r",7))  //11
    console.log("javascript refercence".indexOf("r",12))  //15

08. 문자열 메서드 : .lastIndexOf()

"문자열".lastIndexOf()
  • 문자열을 역순으로 검색하여, 주어진 값과 일치하는 첫 번째 위치값(index)을 반환합니다.
  • 문자열을 역순으로 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
  • 대소문자를 구별합니다.

    console.log("javascript refercence".indexOf("javascript"))  //0
    console.log("javascript refercence".indexOf("javascripts"))  //-1
    console.log("javascript refercence".indexOf("j"))  //0
    console.log("javascript refercence".indexOf("J"))  //-1
    console.log("javascript refercence".indexOf("a"))  //1
    console.log("javascript refercence".indexOf("ja"))  //0
    console.log("javascript refercence".indexOf("jv"))  //-1
    console.log("javascript refercence".indexOf("refercence"))  //11
    console.log("javascript refercence".indexOf("r"))  //6
    console.log("javascript refercence".indexOf("re"))  //11
    
    console.log("javascript refercence".indexOf("javascripts",0))  //0
    console.log("javascript refercence".indexOf("javascripts",1))  //-1
    console.log("javascript refercence".indexOf("refercence",0))  //11
    console.log("javascript refercence".indexOf("refercence",11))  //11
    console.log("javascript refercence".indexOf("refercence",12))  //-1
    console.log("javascript refercence".indexOf("r",7))  //11
    console.log("javascript refercence".indexOf("r",12))  //15

09. 문자열 메서드 : .localeCompare()

"문자열".localeCompare()
  • 현재 문자열과 인수로 전달된 문자열을 유니코드 순서로 비교합니다.
  • 현재 문자열이 전달된 문자열보다 작으면 음수를, 같으면 0을, 크면 양수를 반환합니다.

    const str1 = 'hello';
    const str2 = 'world';
    console.log(str1.localeCompare(str2)); // -1
    console.log(str2.localeCompare(str1)); // 1
    console.log(str1.localeCompare(str1)); // 0

10. 문자열 메서드 : . match()

"문자열". match()
  • 문자열(정규식)을 검색하고, 문자값(배열)을 반환합니다.
  • 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 null을 반환합니다.
  • 대소문자를 구별합니다.
  • match() 메서드는 문자값(배열)을 반환하고, search() 메서드는 위치값(숫자)를 반환하는 것이 다릅니다.

    console.log( "javascript reference".match("javascript"))  //"javascript"
    console.log( "javascript reference".match("reference"))   //"reference"
    console.log("javascript reference".match("r"))            //"r"
    console.log("javascript reference".match("R"))            //null
    console.log("javascript reference".match(/R/i))            //null
    console.log("javascript reference".match(/reference/))    //"reference"     
    console.log("javascript reference".match(/r/g))            //"r r r"

11. 문자열 메서드 : .matchAll()

"문자열".matchAll()
  • 메서드는 문자열에서 정규 표현식과 매치되는 모든 부분을 찾아 이를 반복 가능한(iterable) 객체로 반환합니다.
  • 반복 가능한 객체에서 반환되는 값은 match() 메서드가 반환하는 배열과 유사한 형태를 갖고 있습니다.

    const str = 'hello world';
    const regex = /\w+/g;
    const matches = str.matchAll(regex);
    
    for (const match of matches) {
      console.log(match);
    }
    // 출력 결과:
    // ["hello", index: 0, input: "hello world"]
    // ["world", index: 6, input: "hello world"]

12. 문자열 메서드 : .normalize()

"문자열".normalize()
  • 현재 문자열의 유니코드 정규화 형식을 반환합니다.
  • 유니코드 정규화는 문자열에서 등장하는 문자들을 일관된 형식으로 변환하는 것을 말합니다.

    const str = 'n\u0303';
    console.log(str.normalize()); // 'ñ'

13. 문자열 메서드 : .padEnd()

"문자열".padEnd()
  • 현재 문자열의 끝에 지정된 길이만큼 다른 문자열을 추가한 새로운 문자열을 반환합니다.
  • 추가할 문자열은 필수적으로 전달되어야 합니다. 만약 현재 문자열의 길이가 지정된 길이보다 크거나 같으면 현재 문자열을 그대로 반환합니다.

    const str = 'hello';
    console.log(str.padEnd(10, '.')); // 'hello.....'

14. 문자열 메서드 : .padStart()

"문자열".padStart()
  • 현재 문자열의 시작 부분에 지정된 길이만큼 다른 문자열을 추가한 새로운 문자열을 반환합니다.
  • 추가할 문자열은 필수적으로 전달되어야 합니다. 만약 현재 문자열의 길이가 지정된 길이보다 크거나 같으면 현재 문자열을 그대로 반환합니다.

    const str = 'hello';
    console.log(str.padStart(10, '.')); // '.....hello'

15. 문자열 메서드 : .repeat()

"문자열".repeat()
  • 현재 문자열을 지정된 횟수만큼 반복한 새로운 문자열을 반환합니다.
  • 반복 횟수는 0 이상의 정수여야 합니다.
  • 
        const str = 'hello';
        console.log(str.repeat(3)); // 'hellohellohello'
    
    

18. 문자열 메서드 : .search()

"문자열".search()
  • 문자열(정규식)을 검색하고, 위치값(숫자)을 반환합니다.
  • 문자열을 검색하여, 주어진 값과 일치하는 것이 없으면 -1을 반환합니다.
  • 대소문자를 구별합니다.
  • 
        console.log( "javascript reference".search("javascript"))  //0
        console.log( "javascript reference".search("reference"))   //11
        console.log("javascript reference".search("r"))            //6
        console.log("javascript reference".search("a"))
        console.log("javascript reference".search("jv"))
        console.log("javascript reference".search("J"))
    
        console.log("javascript reference".search(/reference/))
        console.log("javascript reference".search(/Reference/))        
        console.log("javascript reference".search(/reference/i))      //11
        console.log("javascript reference".search(/Reference/i))      //-1
        console.log("자바스크립트".search(/[a-z]/g))                   //11
        console.log("javascript reference".search(/[a-z]/g))          //0
    
    

19. 문자열 메서드 : .slice(시작위치, [끝나는 위치])

"문자열".slice(시작위치, [끝나는 위치])
  • 시작 위치에서 종료 위치 값을 추출하여, 새로운 문자열을 반환합니다.
  • 
        "javascript".slice(0)
        console.log("javascript".slice(0))     //javascript
        console.log("javascript".slice(1))    //avascript
        console.log("javascript".slice(5,10)) //cript
        console.log("javascript".slice(-3,-1)) //ip
        console.log("javascript".slice(-5,-2)) //cri
    
    

22. 문자열 메서드 : .split(시작위치, [끝나는 위치])

"문자열".split(시작위치, [끝나는 위치])
  • 구분자를 이용하여, 여러개의 문자열(배열)을 반환합니다.
  • 
        console.log("javascript".split("")) //['j', 'a', 'v', 'a', 's', 'c', 'r', 'i', 'p', 't']
        console.log("jav ascr ipt".split(" ")) //['jav', 'ascr', 'ipt']
        console.log("javascript".split("",1)) //['j']
        console.log("javascript".split("",2)) //['j', 'a']
        console.log("java script".split(" ", 1)) //['java']
        console.log("java script".split(" ", 2)) //['java', 'script']
        console.log("java script".split(" ")) //['java', 'script']
    
        console.log("javascript".split("j")) //['', 'avascript']
        console.log("javascript".split("a")) //['j', 'v', 'script']
        console.log("javascript".split("e")) //['javascript']
        console.log("java/scr/ipt".split("/")) //['java', 'scr', 'ipt']
        console.log("java&scr!ipt".split(/&|\!/)) //['java', 'scr', 'ipt']
        console.log("java&scr!ipt".split("&")) //['java', 'scr', 'ipt']
        --체인
        console.log("javascript".split("").join(""))  //j,a,v,a,s,c,r,i,p,t  join을 넣어 배열이 아닌 문자열
        console.log("javascript".split("").join("*"))  //j,a,v,a,s,c,r,i,p,t  
        console.log("javascript".split("").reverse().join("/"))  // t/p/i/r/c/s/a/v/a/j   reverse는 배열만 
    
    

30. 문자열 메서드 : .trim()

"문자열".trim()
  • 문자열 앞/뒤 공백을 제거하고 새로운 문자열을 반환 합니다.
  • 
        console.log("javascript".trim(""))   //"javascript"
        console.log(" javascript".trim(" "))  //"javascript"
        console.log("javascript ".trim(""))  //"javascript"
    
    

31. 문자열 메서드 : .trimStart()

"문자열".trimStart()
  • 문자열 앞 공백을 제거하고 새로운 문자열을 반환 합니다.
  • 
        console.log(" javascript ".trimStart(""))   //"javascript "
    
    

32. 문자열 메서드 : .trimEnd()

"문자열".trimEnd()
  • 문자열 뒤 공백을 제거하고 새로운 문자열을 반환 합니다.
  • 
        console.log(" javascript ".trimEnd(""))   //" javascript"