반응형
for in과 for of 차이점
1. for...in은 객체를 반복할때 사용
2. for...of는 배열을 반복할때 사용
spread operator
기존에는 concat을 이용하여 배열을 합치곤 하였다.
let pre = ['a', 'b', 100];
let newData = pre.concat(['c','d'])
console.log(newData);
ES6에서는 spread operator를 통해서 편하게 합칠 수 있게 되었다.
let pre = ['a', 'b', 100];
let newData = [...pre];
console.log(pre, newData); //['a', 'b', 100], ['a', 'b', 100]
console.log(pre === newData); //false
newData의 경우는 pre의 값을 하나씩 추출해서 새로운 배열로 만들어준다.
그래서 line4의 경우 참조값이 달라 같지 않다.
배열안에 배열값 추가 할 때 사용하기 좋다.
let pre = [100, 200, 'hi', null];
let newdata = [0, 1, 2, 3, ...pre, 4];
console.log(pre, newdata);
// [100, 200, 'hi', null], [0, 1, 2, 3, 100, 200, 'hi', null, 4]
call(), apply()
특징
parameter로 this로 사용할 값을 보낼 수 있다.
차이점
parameter에 배열을 담을 것이면 apply를 사용, 그렇지 않을 경우엔 call을 사용
arguments
1. 파라미터의 수가 유동적이어도 arguments라는 keyword를 통해서 자유롭게 사용가능하다.
function addMark(){
let newData = [];
for(let i = 0; i < arguments.length; i++){
newData.push(arguments[i] + '명');
}
console.log(newData);
}
addMark(1,2,3,4,5);
2. arguments의 경우 배열처럼 보이기만 하지 배열이 아니다. 그래서 from을 통해서 진짜 배열로 변경해준다.
function addMark(){
let newArray = Array.from(arguments);
let newData = newArray.map(function(value){
return value + "!";
})
console.log(newData);
}
addMark(1,2,3,4,5);
ex)
<ul>
<li>apple</li>
<li>orange</li>
<li>banana</li>
<li>strawberry</li>
</ul>
function print(){
let list = document.querySelectorAll('li');
console.log(toString.call(list));
let listArray = Array.from(list);
console.log(toString.call(listArray));
let eArray = listArray.filter(function(v){
return v.innerText.includes('b');
})
console.log(eArray.length);
return eArray;
}
console.log(print());
반응형
'인강 > 모던 자바스크립트(javascript) 개발을 위한 ES6 강좌' 카테고리의 다른 글
Arrow Function (0) | 2023.01.26 |
---|---|
Template (0) | 2023.01.26 |
Set (0) | 2023.01.24 |
Obj (0) | 2023.01.24 |
scope (0) | 2023.01.24 |