function
키워드를 사용하여, 함수를 정의하는 방법이다. function regularFunction(param1, param2) {
// 함수 본
}
this
바인딩this
가 다르게 바인딩된다. this
의 값이 달라질 수 있다.arguments
객체 oarguments
객체를 사용할 수 있다.new
키워드를 사용하여 생성자 함수로도 사용할 수 있다.
=>
구문을 사용하여 함수를 정의하는 방법이다.const arrowFunction = (param1, param2) => {
// 함수 본문
};
this
가 호출하는 대상에 따라, 동적으로 바인딩된다. 그러나, 화살표함수를 사용했을 때의 this는 상위 스코프의 this를 가리키게 된다.this
바인딩this
를 가지지 않으며, 외부 함수의 this
를 그대로 사용한다. (함수가 호출되는 위치에 따라 this
의 값이 달라질 수 있다.)arguments
객체 xarguments
객체를 사용할 수 없다.arguments
객체를 사용하지 못하는 대신, rest parameter
를 사용할 수 있다.new
키워드와 함께 사용할 수 없다.return
키워드 없이도 사용할 수 있다.const add = (a, b) => a + b;
this
바인딩: 일반 함수는 동적으로 this
를 바인딩하지만, 화살표 함수는 외부의 this
를 그대로 사용한다.arguments
객체: 일반 함수는 arguments
객체를 제공하지만, 화살표 함수는 제공하지 않는다.