문자열에 접근
자바스크립트에서는 간단한 텍스트를 처리하기 위해 문자열 유형을 자주 사용한다.
원시 유형과 객체
원시유형: 자바스크립트의 기본 데이터 유형으로, 숫자, 문자열, 불리언(참 또는 거짓), null, undefined
프로퍼티: 객체에서 데이터를 저장하는데 사용되는 변수. 이름과 값을 가지며 객체의 이름을 키 또는 속성이라고도 부른다.
값만 가지고 있을 경우 원시유형, 프로퍼티와 메서드르르 가지고 있을 때는 객체라고 하지만 자바스크립트에서는 원시 유형이어도 프로퍼티와 메서드를 사용할 수 있다.
ex) let str = "hello" str.length //5
래퍼 객체(wrapper object)
: 자바스크립트에서 number, boolean, string유형은 별도로 프로토타입객체가 만들어져 있다. 즉, 숫자는 Number객체, 문자열은 String 객체. 이런 객체를 래퍼객체라고 한다.
오토박싱(atuoboxing)
: 원시 유형에서 프로퍼틴 메서드를 사용하면 일시적으로 원시 유형을 해당 객체로 변환 후 사용이 끝나면 해당객체는 메모리에서 사라진다.
문자열에서 문자의 위치 활용(charAt(), indexOf() 메서드)
charAt()메서드
문자열에서 특정 위치의 문자를 자겨올 때 사용한다. 별도의 메서드 없이 배열처럼 대괄호 [ ] 를 사용할 수 있다. 위치는 인덱스로 표시된다.
문자열.charAT(위치)
ex) let str ="Good morning!"; str. sharAT(3) //"d" str[5] //"m"
☞인덱스가 3인 요소와 5인 요소를 가져옴
indexOf()메서드
문자열에서 부분 문자열이 어디에 있는지 검색할때 편리하다. indexOf()메서드는 괄호 한의 문자열이 나타난 위치를 알려주고 '위치'값을 생략할 경우 문자열이 나타난 첫 번째 위치를 알려 준다.
indexOf(문자열)
indexOf(문자열, 위치)
let str ="Good morning!, everyone. Beautiful morning.";
str.indexOf("morning") //5
str.indexOf("evening") //-1
문자열에 어떤 문자가 있는지 확인하기
startsWith()
문자열이 특정 문자나 문자열로 시작하는지 확인해야 할 때 사용한다. 대소문자를 구분하며 결괏값은 true나 false이다.
문자열. startsWidth(문자 또는 문자열)
str2 = "Hello, everyone."
str2.startsWidth("Hello") //true
str2.startsWidth("hello") //false
str2.startsWidth("He") //true
위치를 지정하면 특정 문자난 문자열이 해당 위치부터 시작하는지 확인 가능하다.
문자열.startsWidth(문자 또는 문자열, 위치)
endsWith()
문자열이 특정 문자나 문자열로 끝나는지 확인할 수 있는 메서드이다. 이 메서드 결괏값도 true나 false이며 대소문자를 구별한다.
문자열.endsWidth(문자나 문자열)
문자열과 함께 길이를 지정할 수 있다.
문자열.endsWidth(문자열, 길이)
str2 = "Hello, everyone."
str2.endsWidth("one", 16) //true, '마지막이 one 이다.'
str2.endsWidth("lo", 5) //true, 'Hello의 마지막이 lo이다.'
includes()
문자열에 특정 문자나 문자열이 포함되었는지 확인할 때 사용한다. 이 메서드도 대소문자를 구별한다.
문자열.includes(문자열)
str2 = "Hello, everyone."
str2.includes("everyone") //true.
문자열 메서드 활용
문자열 공백 제거(trim(), trimStart(), trimEnd())
문자열에는 공백을 넣을 수도 있고, 원래의 공백을 그대로 표시할 수도 있다. 하지만 연산에 사용하기 위해 공백을 제거할 경우 String객체에 있는 메서드를 사용하면 간단하게 삭제할 수 있다.
문자열.trim() // 문자열의 앞뒤 공백을 제거한다.
문자열.trimStart() // 문자열의 앞쪽 공백을 제거한다.
문자열.trimEnd() // 문자열의 뒤쪽 공백을 제거한다.
문자열의 대소문자 바꾸기
문자열.toUpperCase() //문자열을 모두 대문자로 변환.
문자열.toLowerCase() //문자열을 모두 소문자로 변환.
부분문자열 추출하기
sbustring()메서드
시작위치부터 끝 위치의 직전까지 추출해서 반환한다. 이때 끝 위치의 직전까지 추출하고 끝 위치는 포함되지 않는다. 끝 위치를 지정하지 않으면 시작 위치부터 문자열 끝까지 추출해서 반환한다.
문자열.sbustring()(시작위치)
문자열.sbustring()(시작위치, 끝위치)
let str ="Good morning.";
str.sbustring(5) //"morning"
str.sbustring(0, 4) //"Good"
slice()메서드
sbustring()메서드와 비슷하게 사용할 수 있다. 시작 위치만 지정하면 해당 위치부터 끝까지, 시작 위치와 끝 위치를 지정하면 시작 위치부터 끝위치 직전까지 추출한다.
문자열.slice(시작위치)
문자열.slice(시작위치, 끝위치)
let str ="Good morning.";
str.slice(0, 4) //"Good"
str.slice(-5, 12) //"ning"
str.sbustring(-5, 4) //"Good morning" (sbustring() 메서드의 경우 음수가 들어가면 무조건 0으로 바꿔서 실행)