값 복사
원시데이터(null
,undefined
,string
,number
,boolean
)의 값을 복사 할 수 있다.
=> 복사된 값이 변경되었을 때 변수의 값은 변경되지 않는다.
값 참조
객체 유형(object
,array
,function
)의 값을 참조할 수 있다.
=> 참조된 값이 변경되었을 때 변수의 값도 같이 변경된다.
=>for 문
을 사용해서 객체 유형도 복사할 수도 있다.
전역을 오염시키지 않기 위해 변수를 객체에 할당하면 객체 안에서만 사용할 수 있는 변수가 된다.
객체이름.변수이름 = 값
함수를 선언할 때는 함수 선언문과 함수 표현식이 있다.
- 함수 선언문
=> 함수를 선언하면 최상단으로 호이스팅되기 때문에 어디서든 사용이 가능하다.
=> 엄격모드에서는 블록의 영향을 받기 때문에, 블록 내에서만 사용이 가능하다.- 함수 표현식
=> 변수 선언만 최상단으로 호이스팅되기 때문에 코드를 만나기 이전에는 사용할 수 없다.
=> 블록의 영향은 받지 않기 때문에 코드 이후에는 어디서든 사용이 가능하다.
콜백함수
=> 나중에 호출되는 함수
arguments
객체를 사용해서 함수의 매개변수 없이 함수를 사용할 수 있다.
=>arguments
는 유사배열이며for-of문
으로 순환이 가능하다.
let func = (arg1, arg2, ...argN) => expression
()
안에 매개변수를 담고,=>
뒤에 return할 값을 담는다.
=> return 값이 여러 줄이라면,{}
안에return
지시자 뒤에 값을 담는다.- 매개변수에
...argN
=> 나머지 인수를 배열로 만들어준다.
[...]
(spread syntax)Array.from(객체이름)
.reduce((누적값, 아이템) => {return 값}, 누적값의초깃값)
=> 누적값의 초깃값부터 순환하면서 아이템들을 연산하고 최종 누적값을 반환한다.
일반 함수
와화살표 함수
에서의this
의 차이점
- 일반함수의
this
=> 나를 호출한 대상을 가리킨다.- 화살표함수의
this
=>this
를 바인딩할 수 없으며 부모의this
를 가리킨다.