외부함수의 실행이 끝났지만, 내부함수를 함수 밖에서 실행해서 외부함수의 변수에 접근할 수 있는 형태의 함수 (lexical scope를 이용)
외부함수의 변수를 참조해줄 내부함수가 있다면
외부함수의 실행이 끝난 뒤에도 변수는 사라지지 않음
배열 또는 객체에서 각각 값(value)이나 프로퍼티(property)를 분해해서 별도의 변수에 담을 수 있도록 해주는 것
(blah blah)();
조건 ? true일때 값 : false일때 값
function 함수명() {
구현 로직
}
let 함수명 = function () {
구현로직
}
: 끌어올리다
함수 안에 있는 변수나 함수 맨 위로 끌어올린다.
변수나 함수가 어디서 선언되든지 간에 최상단에 위치하게되어 동일 스코프 어디서든 참조할 수 있는 것
호이스팅 대상
var
함수선언문
Olet
const
함수표현식
은 X호이스팅 규칙
부등호가 큰 쪽을 먼저 인식
: 얕은 복사는 객체의 참조 값 (주소 값) 복사, 깊은 복사는 객체의 실제 값 복사
slice()
start 부터 end 인덱스까지 기존 배열에서 추출해 새로운 배열을 리턴하는 메소드object.assign()
메소드에 첫번째 인자로 빈 객체를 넣어주고 두번째 인자로 복사할 객체를 넣음spread 연산자
JSON.stringify()
&&JSON.parse()
재귀함수를 구현한 복사
Lodash 라이브러리 사용
: 반복 가능한
배열은 대표적인 이터러블
이터러블 개념을 사용하면 어떤 객체에든 for..of
반복문 적용가능
Array.from()
으로 이터러블이나 유사배열을 받아 '진짜'Array로 만들어 줌
cf. 유사배열 : 인덱스와 length프로퍼티가 있는 객체
this
의 값은 함수를 호출한 방법에 의해 결정
함수를 객체의 메서드로서 호출하면 this의 값은 그 객체를 사용
Rest Parameter
여러 인수를 배열로 받을 때 사용
함수의 마지막 매개변수 앞에 ...
을 붙여 나머지(rest) 인수로 배열을 대체
함수의 마지막 매개변수만 Rest parameter로 설정 할 수 있다.
들어온 인수를 배열로 묶음
Arguments
함수에 전달된 인수의 배열 객체
배열처럼 사용할 수 있지만, ❗️배열은 아님❗️
그래서 배열 메서드는 사용할 수 없다.
대신 length 속성, 인덱스를 통한 접근, for..of문 사용(iterable하므로)이 가능하다.
보류
equal vs deep.equal
한도끝도 없는 공부.....
구글은 나의 교과서.....
개발자 블로거들은 사랑과 빛.....