함수의 구분 ES6 이전의 함수는 동일한 함수라도 다양한 형태로 호출할 수 있었다. var foo = function () { return 1; }; // 일반함수 foo(); // 1 // 생성자 함수로서 호출 new foo(); // foo {} // 메서드로서 호출 var obj = { foo: foo }; obj.foo(); // 1 ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출 가능 ES6 이전에 일반적으로 메서드라고 부르던 객체에 바인딩된 함수도 callable이면서 constructor이기 때문에 여러가지 형태로 호출할 수 있었다. --> 콜백함수도 마찬가지 그러나 위와 같이 함수를 여러 형태로 호출하게 되면 실수를 유발하고 성능상에도 좋지 않다. ..
함수란? 문으로 구현하고 코드 블록을 감싸서 하나의 실행 단위로 정의한 것 함수정의를 통해 생성하고 함수 호출을 통해 실행 구조 : function isFunction(매개변수) {return 반환값}; isFunction(인수); 매개변수 : 내부로 입력을 전달받는 변수 인수/전달인자 : 입력 반환값 : 출력 isFunction(매개변수)에서 (매개변수)는 함수 호출 연산자 함수를 사용하는 이유 코드의 재사용 유지보수의 편의성 코드의 신뢰성 코드의 가독성 함수 리터럴 객체 타입의 값 - 호출 가능한 객체 function 키워드, 함수 이름, 매개변수 목록, 함수 몸체 함수 이름 : 함수 몸체 내에서만 참조할 수 있는 식별자 함수 정의 함수 선언문 함수 리터럴과 형태 동일 리터럴은 함수 이름을 생략할 수..
화살표 함수 VS 람다 함수 람다 함수 일반함수 기본형 (함수명 포함) function 함수명(){ 함수 로직 } function honey(){ console.log("hi"); } 익명함수 기본형 (일회용, 함수명 미포함) 익명함수는 메모리를 차지하지 않아 일회용으로 많이 사용된다. ⇒ 불필요한 메모리를 줄일 수 있다. 변수에 주로 담겨서 많이 사용된다. (리터럴 방식) function() { 함수 로직 } const honey = function (){ console.log("hi"); } 익명함수는 호이스팅 시 위로 올라가지 않고 익명 함수를 저장한 변수만 올라가게 된다. 일반 함수일 땐 정상적으로 호이스팅되어 에러 발생X 💡 호이스팅 : 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또..