String 생성자 함수
- 표준 빌트인 객체인 String 은 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공한다.
- 표준 빌트인 객체이므로 new 연산자와 함께 호출 하여 String 인스턴스를 생성할 수 있다.
- 문자열이 아닌 인수를 전달할경우 강제로 문자열로 변환후, 해당 문자열을 할당한 래퍼 객체를 생성한다.
const str = new String()
const str = new String('test')
length 프로퍼티
- 위에서 봤듯이, String 래퍼 객체는 배열과 마찬가지로 length 프로퍼티를 갖기에, 문자열의 문자 갯수를 반환할수 있다.
- 인덱스를 나타내는 숫자를 프로퍼티 키로, 각 문자를 프로퍼티 값으로 가지므로 String 래퍼 객체는 유사 배열 객체다.
const str ='test'
console.log(str.length)
String 메소드
String 메서드는 읽기 전용 객체임
- 배열에는 원본 배열을 변경하는 메서드와 새로운 배열을 생성하여 반환하는 메서드가 있다.
- 그러나 String 메서드에는 직접 변경하는 메서드는 존재 하지 않고, 항상 새로운 문자열을 반환하는 메서드만 존재한다.
- 문자열은 변경 불가능한 원시값이기에, String 래퍼 객체도 읽기 전용 객체로 제공된다.
자주 사용하는 String 메소드
const str = " Hello World! ";
console.log(str.length);
console.log(str[0]);
console.log(str.charAt(2));
console.log(str.charCodeAt(2));
console.log(str.indexOf("World"));
console.log(str.lastIndexOf("o"));
console.log(str.includes("Hello"));
console.log(str.startsWith(" He"));
console.log(str.endsWith("! "));
console.log(str.slice(2, 7));
console.log(str.substring(2, 7));
console.log(str.substr(2, 5));
console.log(str.toUpperCase());
console.log(str.toLowerCase());
console.log(str.trim());
console.log(str.trimStart());
console.log(str.trimEnd());
console.log(str.replace("World", "JS"));
console.log(str.replace(/o/g, "0"));
console.log(str.replaceAll("l", "-"));
console.log(str.split(" "));
console.log("apple,banana,kiwi".split(","));
console.log(["apple", "banana"].join(" & "));
console.log("ha".repeat(3));
console.log("5".padStart(3, "0"));
console.log("5".padEnd(3, "0"));
console.log(str.concat("!!!"));
console.log("🎉".normalize("NFC"));
const name = "Min";
console.log(`Hello, ${name}!`);