let str = 'Happy Birthday';
let str2 = ' Happy Birthday';
console.log(str[0] + str[9]); // Ht
// Q) Hard
console.log(str[0]+str[1]+str[8]+str[11]);
console.log(`{${str[0]}${str[1]}${str[8]}${str[11]}}`);
// 백틱은 변수를 출력하기 위해서만 쓰는건 아님
// 표현식을 평가해서 그 결과 값을 문자열 삽입할 수 있기 때문에 사용
// str[]처럼 인덱스를 사용한 문자열 접근도 하나의 표현식
console.log(str.length); //시험출제
console.log(str.toUpperCase());
console.log(str.toLowerCase());
console.log(str2.trim());
console.log(str.trim().length);
console.log(str.indexOf(' ')); //5
console.log(str.indexOf('v')); //-1
// 존재하지 않는 문자에 대해 검색하면 -1 반환
console.log(str.indexOf()); //-1 반환
// 매개변수로 아무값이 들어가지 않는다면 -1 반환
console.log(str.slice(10)); // 10번 위치의 글자 ~ 끝
console.log(str.slice(1,5)); // appy - start (1) ~ end-1 (4) 까지 자르기
console.log(str.slice(-6)); // rthdat- 뒤에서 6번째 위치의 글자 ~ 끝
console.log(str.replace('p','w'));
console.log(str.replaceAll('p','w'));
let str3 = 'dinner';
console.log(str3.split('e')); // ['dinn', 'r'] // 중요!
console.log(str3.split('n')); //['di', '', 'er'] // 2개였기 때문에 빈자리 생성
// dinnner 이라면 console.log(str3.split('n)) => ['di','','','er']
console.log(str3.repeat(4)); //dinnerdinnerdinnerdinner
: 맨끝에 요소 추가
let arr = [ 1, 2, 3, 4, 5];
let arr1 = ['dog', 'lion', 'tiger', 'panda', 'cat'];
arr.push(6);
arr.push(10);
: 맨끝에 요소 제거
arr.pop();
: 맨 앞에 요소 추가
arr1.unshift('bear');
: 맨 앞에 요소 제거
arr1.unshift();
: 배열의 길이 반환
console.log(arr.length); // empty 값도 포함
: 요소가 있는지 없는지 검사 - (true, false)값 반환
console.log(arr1.includes('panda')); // 존재함으로 true
console.log(arr1.includes('hamster')); // 존재하지 않음으로 false
console.log(arr.reverse()); // 역순으로 바뀜
console.log('arr >>>>>', arr); // 원본 배열이 변경됨
console.log(arr1.join('')); // dogliontigerpandacat
console.log(arr1.join(' ')); //dog lion tiger panda cat
console.log(arr1.join('/')); // dog-lion-tiger-panda-cat
console.log('hello'.split('')); // ['h', 'e', 'l', 'l', 'o']
console.log('hello'.split('').reverse()); // ['o', '1', '1', 'e', 'h']
console.log('hello'.split('').reverse().join('')); // olleh