본문 바로가기
Algorithms/코테 문풀

[프로그래머스] JadenCase 문자열 만들기 - JavaScript / substring(), slice(), charAt() + 레거시(lagacy)란?

by hi-rachel 2023. 1. 20.

✏️ 문제 설명

String.prototype.substring()

substring(indexStart)
substring(indexStart, indexEnd)

: substring() 메서드는 string에서 처음부터 시작 인덱스(indexStart)까지끝 인덱스(indexEnd)에서 마지막까지를 제외한 부분을 반환하거나, 끝 인덱스(indexEnd)가 제공되지 않은 경우 indexStart까지 제외하고 문자열 끝까지 반환한다.

 예시)

const str = 'Mozilla';

console.log(str.substring(1, 3));
// Expected output: "oz"

console.log(str.substring(2));
// Expected output: "zilla"

 

매개변수(Parameters)

indexStart: 반환되는 substring에 포함시키려는 첫 번째 문자 인덱스

indexEnd: 반환되는 substring에 제외시키려는 첫번째 문자 인덱스

 

반환 값(Return value)

주어진 문자열에 지정된 부분을 포함하는 새로운 문자열 반환.

 

+ length 속성과 같이 사용하기(Using substring() with length property)

const text = "Mozilla";

// Takes 4 last characters of string
console.log(text.substring(text.length - 4)); // prints "illa"

// Takes 5 last characters of string
console.log(text.substring(text.length - 5)); // prints "zilla"

 

+ substring()과 substr()의 차이점(The difference between substring() and substr())

substr()의 두 개의 매개변수는 start, length / substring()은 start, end

substr()의 start 인덱스가 음수(-)라면 문자열 끝으로 줄 바꿈 / substring()은 0으로 고정

substr()의 음수 길이(Negative lengths)는 0으로 처리 / substring()의 경우 end가 start보다 작다면 start, end 두 인덱스를 교환

const text = "Mozilla";
console.log(text.substring(2, 5)); // "zil"
console.log(text.substr(2, 3)); // "zil"

 

substr()은 ECMAScript의 legacy feature로 여겨져 가능한 사용을 피하는 것이 좋다. substring()을 사용하자.

OpenAI인 ChatGPT 써보니까 너무 유용하고 신기하다.. 재밌고 진짜 똑똑하다. 재미로 생일을 물어보면 자신은 AI model이라 생일이 없다고 한다.

어쨌든 legacy 의미는 과거(지난), 구식! updated와 반대 개념으로 생각하면 된다.

 

 

🙂 공부하며 정리하는 글입니다. 잘못된 점이 있다면 피드백 주시면 감사합니다.