7-1. js 기초 : 표준 내장 객체 (.indexOf(), .padEnd(), .split(), .trim(), .join()...)
* .length:문자의 길이를 반환
const str = "hello world";
console.log(str.length); /11
* .includes() : 대상 문자에 주어진 문자가 포함되어져있는지 확인
const str = "hello world";
console.log(str.includes("hello")); //true
console.log(str.includes("Hello")); //false -> 대소문자 구분
console.log(str.includes("hello", 0)); //0번째 지점부터 확인, true
console.log(str.includes("hello", 1)); //false
* .indexOf() : 대상 문자에서 주어진 문자와 일치하는 첫번째 인덱스 반환, 없으면 -1 리턴
const str = "hello world";
console.log(str.indexOf("hello")); //0
console.log(str.indexOf("world")); //6
console.log(str.indexOf("World")); //-1
* .padEnd() : 대상 문자의 길이가 지정된 길이보다 작으면, 주어진 문자를 지정된 길이까지 끝에 붙여 새로운 문자를 반환
const str = "1234567";
console.log(str.padEnd(10, "0")); //길이는 7이라 10보다 작으니 0을 붙여 길이 10으로 만듦, 1234567000
console.log(str); //원본 훼손x, 1234567
console.log(str.padEnd(5, "0")); //길이는 7이라 5보다 크니 변함없이 1234567
* .padStart() : 대상 문자의 길이가 지정된 길이보다 작으면, 주어진 문자를 지정된 길이까지 앞에 붙여 새로운 문자를 반환
const str = "1234567";
console.log(str.padStart(10, "0")); //길이는 7이라 10보다 작으니 0을 붙여 길이 10으로 만듦, 0001234567
console.log(str); //원본 훼손x, 1234567
console.log(str.padStart(5, "0")); //길이는 7이라 5보다 크니 변함없이 1234567
* .replace() : 대상 문자에서 패턴과 일치하는 부분을 교체한 새로운 문자를 반환
const str = "Hello, Hello?";
console.log(str.replace("Hello", "hi")); //제일 먼저 찾은 Hello를 hi로 교체 -> hi, Hello?
console.log(str.replace(/Hello/g, "hi")); //정규표현식 사용, 모든 Hello를 전부 hi로 교체 -> hi, hi?
console.log(str);//원본 훼손x, Hello, Hello?
* .slice() : 대상 문자의 일부를 추출해서 새로운 문자를 반환
//두번째 인수 직전까지 추출하고, 두번째 인수를 생략하면 대상 문자의 끝까지 추출
const str = "hello world";
console.log(str.slice(0, 5));//0~4 추출, hello
console.log(str.slice(6, -1));//-1은 제일 끝부분, 그 직전까지니까 worl
console.log(str.slice(6));//world
console.log(str); //원본 훼손x, hello world
* .split() : 대상 문자를 주어진 구분자로 나눠 배열로 반환
const str = "apple, banana, cherry";
console.log(str.split(",")); //띄어쓰기가 포함되어져 있음 ['apple', ' banana', ' cherry']
const str2 = "apple,banana,cherry";
console.log(str2.split(","));//['apple', 'banana', 'cherry']
console.log(str2.split("")); //문자 하나하나를 배열로 추출, ['a', 'p', 'p', 'l', 'e', ',', 'b', 'a', 'n', 'a', 'n', 'a', ',', 'c', 'h', 'e', 'r', 'r', 'y']
* .reverse() : 순서를 뒤집어 출력
console.log(str2.split(",").reverse()); // ['cherry', 'banana', 'apple']
* .join() : 배열의 아이템을 하나의 문자로
console.log(str2.split(",").reverse().join()); //cherry,banana,apple
* .toLowerCase() : 대상 문자를 영어 소문자로 변환해 새로운 문자로 반환
const str = "Apple, Banana, Cherry";
console.log(str.toLowerCase()); //apple, banana, cherry
console.log(str);//원본 훼손x, Apple, Banana, Cherry
* .toUpperCase() : 대상 문자를 영어 대문자로 변환해 새로운 문자로 반환
const str = "Apple, Banana, Cherry";
console.log(str.toUpperCase()); //APPLE, BANANA, CHERRY
console.log(str); //원본 훼손x, Apple, Banana, Cherry
* .trim(): 대상 문자의 앞뒤 공백문자를 제거한 새로운 문자 반환, 사이사이 띄어쓰기는 제거 안함
const str = " min ";
console.log(str.trim());//min
console.log(str);//원본 훼손x, min
const str2 = " yo on ";
console.log(str2.trim());//yo on
console.log(str2);//원본 훼손x, yo on