728x90

Array

Array.apply(null,Array(length))

  • 특정 길이의 iterable한 Array 객체를 생성한다.
Array(7) // [,,,,,,,] 길이가 7인 배열. not iterable
Array.apply(null,Array(7)) // == Array(undefined,undefined,...,undefined) 길이가 7인 undefined 배열, iterable

Array.apply(null,Array(7)).map((el,i)=> i) // [0,1,2,3,4,5,6]

Array.of()

  • 전달인자의 개수나 데이터 타입에 관계없이 새 배열 인스턴스를 생성한다.
Array.of(7); // [7]
Array.of(1,2,3) // [1,2,3]

Array(7) // [ , , , , , ,] 길이가 7인 배열
Array(1,2,3) // [1,2,3]

Array.prototype.entries()

  • 배열의 각 익덱스에 대한 key/value 쌍을 가지는 새로운 Array Iterator 객체를 반환한다.
const arr = ['a','b','c'];

const iterator = arr.entries();

console.log(iterator.next().value);// [0,'a']

console.log(iterator.next().value);// [1,'b']

for( const [key,value] of arr.entries()){
  console.log(key, value) 
}
// 0,'a'
// 1,'b'
// 2.'c'

Array.prototpye.shift() / Array.prototype.unshift()

  • shift()
    • 배열에서 첫 번째 요소를 삭제하고 그 요소를 반환한다.
  • unshift()
    • 배열에서 첫 번째 요소를 추가하고 새로운 길이를 반환한다.
let arr = ['a','b','c'];

arr.shift();
console.log(arr);// ['b','c']

const newLength = arr.unshift('d'); 
console.log(arr); //['d','b','c']
console.log(newLength);// 3

Array.prototype.splice()

  • 배열에서 요소를 추가/삭제 하고 삭제한 요소 배열을 반환한다.
let arr = ['a','b','c'];
arr.splice(1,2,'k');
console.log(arr) // ['a','k']

Array.prototype.join()

  • 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
let arr = ['a','b','c'];
console.log(arr.join('-'));//'a-b-c'
console.log(arr.join(''));//'abc'

Array.prototype.indexOf()

  • 배열에서 지정된 요소를 찾을 수 있는 첫번째 인덱스를 반환하고 존재하지 않으면 -1을 반환한다.
let arr = ['a','a','b'];
console.log(arr.indexOf('a')) // 0
console.log(arr.indexOf('a',2)) //1
console.log(arr.indexOf('c') // -1

Array.prototype.keys()

  • 배열의 각 _인덱스_를 키 값으로 가지는 새로운 Array Iterator객체를 반환한다.
let arr =['a','b','c'];
const iterator = arr.keys();

for(const key of iterator){
  console.log(key);
} // 0
  // 1
  // 2

Array.prototype.flat()

  • 모든 하위 배열 요소를 지정한 깊이까지 재귀적으로 이어붙인 새로운 배열을 생성한다.
let arr = ['a',['b','c'],[['d','e']]];
console.log(arr.flat()); // ['a','b','c',['d','e']]
console.log(arr.flat(2)); // ['a','b','c','d','e']
console.log(arr.flat(Infinity))//['a','b','c','d','e']

Array.prototype.flatMap();

  • 먼저 매핑함수를 사용해 각 엘리먼트에 대해 map 수행 후, 결과를 새로운 배열로 flatten한다. 기본적으로 flat depth는 1이다.
let arr = [1,2,3];

arr.map(item=>item*2); // [2,4,6]

arr.map(item=>[item*2]) // [[2],[4],[6]]
arr.flatMap(item=>[item*2]) // [2,4,6]

arr.flatMap(item=>[[item*2]]) // [[2],[4],[6]]

Array.from()

  • array-like object나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만든다.
console.log(Array.from('foo')); // ['f','o','o']

console.log(Array.from([1,2,3],x=>x+x); // [2,4,6]

 

Object

Object.assign()

  • 하나 이상의 원본 객체들로부터 모든 열거가능한 속성들을 대상 객체로 복사한다. 같은 key는 덮어씌워 새로운 값으로 갱신한다.
const target = {a:1,b:2};
const source = {b:4,c:5};

const returnTarget = Object.assign(target,source);

console.log(returnTarget); // {a:1,b:4,c:5}

console.log(target); // {a:1,b:4,c:5} target도 값이 갱신된다!!

Object.freeze()

  • 객체의 값을 변경할 수 없도록 동결한다. Object의 const라고 보면될듯하다.
const obj = {
  prop: 42
};

obj.prop = 41;

console.log(obj.prop); // 41

Object.freeze(obj); 

obj.prop = 40; // error in strict mode

console.log(obj.prop) // 41

 

String

'

String.prototype.match()

  • 문자열이 정규식과 매치도는 부분을 검색한다.
var str = 'For more information, see Chapter 3.4.5.1';
var re = /see (chapter \d+(\.\d)*)/i;
var found = str.match(re);

console.log(found);

String.prototype.padEnd() / String.prototype.padStart()

  • 현재 문자열에 다른 문자열을 채워 주어진 길이를 만족하는 새로운 문자열을 반환한다.
console.log(`abc`.padEnd(10)); // 'abc       '
console.log(`abc`.padEnd(10,'foo')); // `abcfoofoof`
console.log(`abc`.padEnd(6,'123456')); // `abc123`
console.log(`abc`.padEnd(1)); // `a`

String.prototype.slice()

  • 문자열의 일부를 추출하면서 새로운 문자열을 반환한다.
console.log(`abc`.slice(1)) // bc
console.log(`abc.slice(0,1)) // a
console.log(`abc`.slice(-1)) // c
console.log(`abc`.slice(-3,-2) // a

String.prototype.split()

  • 지정한 구분자를 이용하여 여러개의 문자열로 나눈다
console.log(`ab cd`.split(' ')); // ['ab'.'cd']
console.log(`ab cd`.split('')); //['a','b',' ','c','d']
console.log(`ab cd`.split()); // ['ab cd']

String.prototype.substring()

  • 문자열의 시작 인덱스부터 종료 인덱스 전까지 문자열의 부분 문자열을 반환한다.
const str = 'abcde'

console.log(str.substring(1,3)); // bc

console.log(str.substring(2)); // cde

String.prototype.trim() / String.prototype.trimEnd() / String.prototype.trimStart()

  • trim
    • 양끝의 공백(space, tab, NBSP)을 제거해준다.
  • trimEnd
    • 뒤의 공백을 제거해준다.
  • trimStart
    • 앞의 공백을 제거해준다.
const str = ' abcd '

console.log(str.trim()); 'abcd'
console.log(str.trimEnd()); ' abcd'
console.log(str.trinStart()); 'abcd '

 

Proxy

  • 특정 객체(array,object)를 감싸 프로퍼티 읽기, 쓰기와 같은 객체에 가해지는 작업을 중간에서 intercept하는 객체로 작업은 Proxy 자체에서 처리하기도 하고, 원래 객체가 처리하도록 넘겨주기도한다.

참고사이트1
참고사이트2

'VueJS' 카테고리의 다른 글

Vue3 - 3.Type Fundamentals  (0) 2021.12.28
Vue3 - 2. Vue3 + Typescript  (0) 2021.12.28
Vue3 - 1. Composition API  (0) 2021.12.11
vue3 - 0.주요 특징  (0) 2021.12.10
VueJs Project Architecture  (0) 2021.01.28

+ Recent posts