this
학습reduce()
사용 방법 정리 const
는 재할당 불가능 (ESLint: fixes your js code)화살표 함수: 매개변수가 두개 이상일 경우에는 ( )
를 붙여줘야 함 (아님 생략 가능)
클로저: 함수를 리턴하는 함수
const adder = x => y => x + y;
adder(50)(10) //60
const subtractor = x => y => x - y;
subtractor(50)(10) //40
const htmlMaker = tag => textContent => `<${tag}>${textContent}</${tag}>`
htmlMaker('div')('code states') //'<div>code states</div>'
const liMaker = htmlMaker('li')
liMaker('1st item') //'<li>1st item</li>'
liMaker('2nd item') //'<li>2nd item</li>'
Date().getFullYear()
Array.isArray
를 써서 타입을 확인 (typeof는 'object'로 뜸) arr.slice(1)
- slice(start) array.slice(0)
=== array.slice()
- shallow 복사!Array.from
은 유사배열도 배열화해서 복사 (shallow copy)객체는 참조형이기 때문에 내용물이 같아도 비교 불가 (배열도 마찬가지)
(person.son === {age:20})
-> false
(원시값으로 바꿔줘야.. 객체값 비교하기)
객체는 index로 접근 안됨! key로만 접근 가능
객체는 배열이 아니기 때문에 length 쓰면 안됨 (배열 속성)
객체 길이는 Object.keys(obj).length
를 써야함
Object.assign(target, source)
타겟이 빈 배열이어야 새 객체를 반환 e.g. Object.assign({}, obj)
arguments
vs. rest parameter 다시 복습arguments
는 유사배열, rest parameter로 매개변수 모아준 arg는 배열 const [first, ...middle, last] = array
const student = { name: '최초보', major: '물리학과' }
const { name, ...args } = student
console.logs(args); //{major: '물리학과'}
let course='선형대수';
const student = { name: '최초보', major: '물리학과', lesson: '양자역학', grade: 'B+' }
function getSummary({ name, lesson: course, grade }) {
return `${name}님은 ${grade}의 성적으로 ${course}을 수강했습니다`
}
console.log(getSummary(student)); //'최초보님은 B+의 성적으로 양자역학을 수강했습니다'