유사배열 배열로 바꾸기
유사배열 (array-like)은 forEach를 사용할 수 없기 때문에 Array.from() 을 사용해야 한다.
const buttons = document.getElementsByClassName('btn');
// for(let i=0; i<buttons.length; i++) {
// buttons[i].addEventListener('click', () => console.log('clicked!!!'));
// }
Array.from(buttons).forEach(button => {
button.addEventListener('click', () => console.log('clicked!~!'));
});
일반 for 문은 사용 가능하다.
object destructuring
const obj = {
color: {
theme: 'dark',
font: 'white'
},
fruit: 'banana',
name: 'sherlock'
};
const { color: {theme=false} = {} } = obj;
console.log(theme); //dark
array destructuring
const days = ['Mon', 'Tue', 'Wed'];
const [mon, tue, wed] = days;
console.log(mon, tue, wed); // Mon Tue Wed
rename
const settings = {
color: {
chosen_color: 'dark'
}
};
let chosenColor = 'blue';
console.log(chosenColor); // blue
({ color: {chosen_color: chosenColor = 'light'} } = settings);
console.log(chosenColor); // dark
함수 디스트럭쳐링 function destructuring
function save( {info: {address=false} = {} } ) {
console.log(address);
}
save({
name: 'sherlock',
score: 'A',
hobby: 'reading',
info: {
address: 'seoul',
job: 'dev'
}
});
// seoul
swapping
let mon = 'sat';
let sat = 'mon';
[mon, sat] = [sat, mon];
console.log(mon, sat); //mon sat
skkiping
const arr = ['A', 'B', 'C', 'D', 'E'];
[ , , ,val] = arr;
console.log(val); // D
오브젝트-객체도 전개 연산자를 이용할 수 있다.
const obj1 = {
name: 'sherlock',
job: 'dev'
};
const obj2 = {
score: 'A',
address: 'seoul'
};
const obj3 = { ...obj1, ...obj2 };
console.log(obj3);
//{ name: 'sherlock', job: 'dev', score: 'A', address: 'seoul' }
응용
const name = 'sherlock';
const obj = {
score: 'A',
address: 'SEOUL',
...{ name }
};
console.log(obj);
// { score: 'A', address: 'SEOUL', name: 'sherlock' }
const name = '';
const obj = {
score: 'A',
address: 'SEOUL',
...(name !== '' && { name })
};
console.log(obj);
// { score: 'A', address: 'SEOUL' }
rest
function test(...args) {
console.log(args);
}
test('a', 1, 2, ['x', 'y'], { m: 'm' }, 5, 'd');
//[ 'a', 1, 2, [ 'x', 'y' ], { m: 'm' }, 5, 'd' ]
const user = {
name: 'sherlock',
address: 'seoul',
password: '1234'
};
const deletePassword = ({ password, ...rest }) => rest;
console.log(deletePassword(user));
// { name: 'sherlock', address: 'seoul' }
const user = {
name: 'sherlock',
address: 'seoul',
password: '1234'
};
const setCountry = ({ country = 'KOREA', ...rest }) => {
return { country, ...rest };
};
console.log(setCountry(user));
// { country: 'KOREA',
// name: 'sherlock',
// address: 'seoul',
// password: '1234' }
위와 동일
const user = {
name: 'sherlock',
address: 'seoul',
password: '1234'
};
const setCountry = ({ country = 'KOREA', ...rest }) => ({ country, ...rest });
console.log(setCountry(user));
오브젝트 키(이름) 바꾸기
const user = {
NAME: 'sherlock',
address: 'seoul',
password: '1234'
};
const modiUser = ({ NAME: name, ...rest }) => ({ name, ...rest });
console.log(modiUser(user));
//{ name: 'sherlock', address: 'seoul', password: '1234' }
for of 주의 (object 는 for in 문을 사용한다)
const users = {
NAME: 'sherlock',
address: 'seoul',
password: '1234'
};
const friends = ['sherlock', 'lily', 'mina', 'rose'];
for (let user of users) {
console.log(user);
}
// TypeError: users is not iterable
// object(객체) 는 iterable 이 아니네.
'programming > javascript' 카테고리의 다른 글
nodejs교과서 redis 부분 버전에 따른 에러 (0) | 2019.12.14 |
---|---|
맥,win10 mysql 실행방법 (0) | 2019.11.26 |
[JS] closure 클로저 예제 코드 (0) | 2019.11.16 |
prettier 설정 (vscode mac) (0) | 2019.11.16 |
[JS] 객체 차집합 만들기 예제 코드 (0) | 2019.11.16 |