👋 let, const 사용 기준, spread, Array spread, String spread, Object spread, push(...spread)
1. let, const 사용 기준
let: 변경 할 수 있음const: 변경 할 수 없음-
let,const변수의 시맨틱을 우선하여 사용- 값이 변경되면
let - 초깃값이 변경되지 않으면
const
// let, const 사용 기준 const list = [10, 20]; let value = [10, 20]; values.push(30, 40); for (let k = 0; k < list.length; k++) {} const book = (param) => param + 10; - 값이 변경되면
2. Spread
- Syntax:
[...iterable] -
[...iterable][...]처럼 [ ] 안에 점(.)3개를 작성하고- 이어서 이터러블 오브젝트 작성
const list = [21, 22]; console.log([11, ...list, 12]); // [11, 21, 22, 12] const obj = { key: 50 }; console.log({ ...obj }); // {key: 50} - 이터러블 오브젝트를 하나씩 전개
{key: value}의Object가 이터러블 오브젝트는 아니지만 전개 가능
3. Array Speard
Spread대상 배열을 작성한 위치에 엘리머트 단위로 분리(전개)-
Array Spread작성 형태const one = [21, 22]; const two = [31, 32]; const result = [11, ...one, 12, ...two]; console.log(result); // [11, 21, 22, 12, 31, 32[ console.log(result.length); // 6...one:one배열의[21, 22]를 엘리먼트 단위로 분리(전개) 함...two:two위치에two배열의[31, 32]를 엘리먼트 단위로 분리(전개) 함
-
값이 대체되지 않고 전개
const one = [11, 12]; const result = [11, 12, ...one]; console.log(result); // [11, 12, 11, 12] console.log(result.length); // 4- 앞에
11과12가 있지만 값을 대체하지 않고...을 작성한 위치에 전개 함
- 앞에
4. String Spread
spread대상 문자열을 작성한 위치에 문자 단위로 전개-
String Spread작성 형태const target = 'ABC'; console.log([...target]); // [A, B, C][...target];target의"ABC"를 문자 단위로 분리하여...target위치에 설정
5. Object Spread
Spread대상Object를 작성한 위치에 프로퍼티 단위로 전개-
Object Spread작성 형태const one = { key1: 11, key2: 22 }; const result = { key3: 33, ...one }; console.log(result); // {key3: 33, key1: 11, key2: 22}...one:one오브젝트의 프로퍼티를 전개
-
프로퍼티 이름이 같으면 값 대체
const one = { book: 10, music: 20 }; const result = { book: 30, ...one }; console.log(result); // {book: 10, music: 20} // const check = [...one];{book: 30}과{book: 10}에서 프로퍼티 이름이 같으므로 30이 뒤에 작성한10으로 대체됨Object는 이터러블 오브젝트가 아니므로[...one]형태로 작성하면 에러가 발생
6. Push(…spread)
push()파라미터에spread대상 작성-
배열 끝에 대상을 분리하여 첨부
let result = [21, 22]; const five = [51, 52]; result.push(...five); console.log(result); // [21, 22, 51, 52] result.push(...'abc'); console.log(result); // [21, 22, 51, 52, a, b, c]result배열 끝에 첨부- 배열이면 엘리먼트로 분리하여 첨부하고 문자열이면 문자 단위로 분리하여 첨부