권장되지 않는 substr() 메서드는 레거시 메서드
어디서 봤는지는 모르겠지만 substr()메서드를 썼다가
코드 위에 밑줄이 그어지며 마우스를 올리니 Deprecated Code라는 안내가 나타났다.
2021년 9월 기준으로 substr()메서드는 더 이상 권장되지 않는 레거시 메서드로 간주되었고
substring()메서드가 대체할 수 있게 되었다.
*레거시(legacy) 메서드란?
lecacy는 '전통,유산,옛날의 것'등을 의미하며 기술적인 의미에서 더 이상 권장되지 않거나
오래되어서 현재의 기술과는 맞지 않는 메서드를 의미합니다.
substring() 메서드
string.substring(startIndex, endIndex)
- startIndex 시작 인덱스와 endIndex 끝 인덱스를 사용해 추출할 부분을 지정합니다.
- startIndex가 endIndex보다 크면 두 인자가 자동으로 교환되어 처리된다.
- substring()메서드는 문자열을 변경하는 것이 아니라 새로운 문자열을 반환한다.원본의 문자열은 변경되지 않고, substring()으로 얻은 문자열은 새로운 문자열이고 별개의 객체이다.
- endIndex는 선택적으로 사용 가능, 지정하지 않을 시 문자열 끝까지를 의미한다.
위와 같은 코드는 17번째 인덱스부터 끝까지 부분 문자열을 추출하는 코드이다.
endIndex는 선택적으로 사용할 수 있고, 지정하지 않으면 문자열 끝까지 추출한다.
아래는 예시 코드와 그 결과이다.
const str = "Hello, this is a sample string.";
const result = str.substring(17);
console.log(result); // "sample string."
또한 문자열 길이보다 더 큰 인덱스, 존재하지 않는 인덱스를 넣거나
문자열의 길이와 같은 인덱스를 입력시에는 빈 문자열을 반환한다.
const str = "1234567890abcdef";
const result = str.substring(18);
console.log(result); // ""
const str = "abc";
const result = str.substring(3);
console.log(result); // ""
'01_PROJECT > OBJECT _2023' 카테고리의 다른 글
[ css ]요소가 부드럽게 나타나고 사라지게 하려면 opacity를 쓰자 (0) | 2023.08.03 |
---|---|
[ JavaScript ] 요소의 크기나 위치를 알 수 있는 getBoundingClientRect() (0) | 2023.08.03 |
[ JavaScript ] 헷갈리는 for...in과 for...of, in의 내부,속성만 기억하자 (0) | 2023.08.02 |
[ JavaScript ] 이벤트 핸들러를 등록할 때 ()빼고 함수명만 적기 (0) | 2023.08.02 |
[ JavaScript ] replace와 정규식을 사용해서 해당 문자 대체하기(제거하기) (0) | 2023.08.02 |