● 오늘 공부한 것
- 클로저
# 클로저 (closure)
● 클로저 - 클로저란 '함수와 그 함수가 선언된 렉시컬 환경과의 조합이다.' 사실 정의만보면 이해하기에 난해한 개념이라고 한다.. ^^ 사실 맞는 것 같다. 하지만 여기서 중요한 건 함수가 선언
ddaeunbb.tistory.com
const adder = x => {
return y => {
return x + y
}
}
console.log(adder(50)(10)) // 60
const subtractor = x => y => {
return x - y
}
console.log(subtractor(50)(10)) // 40
위와 같이 클로저는 입력 값 받는 걸 기다리는 식으로 진행될 수 있다.
● 놓치고 있던 것
const arr = [1,2,3]
let arrPop = arr.pop();
console.log(arrPop) // 3
pop, shift 같은 메서드는 바그 값을 리턴한다는걸 놓치고 있었다.
- arguments 매개변수들은 object형식으로 반환된다.
function getArguments(){
return arguments;
}
console.log(getArguments('first', 'second', 'third'));
// [Arguments] { '0': 'first', '1': 'second', '2': 'third' }
- 정해진 리턴값 이외의 매개변수들을 rest로 받아놓을 수 있다.
function getArguments(one, two, ...rest){
return [one, two, rest]
}
console.log(getArguments("one", "two", "three", "four"))
// [ 'one', 'two', [ 'three', 'four' ] ]
- 배열의 디스트럭쳐링
const array = ['code', 'states', 'im', 'course']
const [start, ...rest] = array
console.log(start, rest)
// code [ 'states', 'im', 'course' ]
- 객체의 디스트럭쳐링
const obj = {name : "김다은" , age: 27};
const { name } = obj;
console.log(name) // "김다은"
const student = { name: '최초보', major: '물리학과' }
const { name, ...args } = student
console.log(name) // '최초보'
console.log(args) // {major : '물리학과'}
참고했던 구조분해할당
[JavaScript] 배열과 객체의 단축 문법(구조 분해 할당)
javascript 배열과 객체의 단축 문법(구조 분해 할당)
velog.io
● 끝맺음
- 느낀점
- 클로저를 3일 동안 공부햇다..
- 난이제 무엇을 공부해야하는감..감감감
- 수업이외의 학습
- 모지리답다 읽기 (형변환에 대한 심도깊은 공부를 했다.. 토요일 스터디 발표주제로 삼았다)
- 몽고 비디랑 노드js쫌공부함.. ejs랑..
- 객체생성자 + 프로토타입에 대해서도 더 깊게 모지리답다를 읽고 공부할거시다.
- 인터랙티브웹 1시간 공부하기
- 내일 스터디 준비하기