Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

늘보블로그

함수 2 본문

스터디로그/javascript

함수 2

개발자늘보 2021. 1. 16. 23:37
2. 함수 표현식
  • 자바스크립트의 함수는 일급 객체 -> 값처럼 변수 할당, 프로퍼티나 배열에 사용 가능
    • 일급 객체: 값의 성질을 갖는 객체.
  • 함수 표현식: 함수 리터럴로 생성한 함수 객체를 변수에 할당하는 함수 생성 방식
  • 함수 표현식의 함수 리터럴은 함수 이름을 생략하는 것이 일반적
var add = function (x, y) {
    return x + y;
};
3. 함수 생성 시점과 함수 호이스팅
  • 함수 선언문 vs. 함수 표현식
    • 함수 선언문은 표현식이 아닌 문, 함수 표현식은 표현식인 문
    • 함수 생성 시점이 다름. 함수 표현식은 함수 표현식 이전에 호출이 불가능함
    • 호이스팅: 함수 선언문이 코드의 선두로 끌어올려진 것처럼 동작하는 자바스크립트의 특징. 함수 선언문보다 위의 코드에서 해당 함수를 호출 가능함
    • 함수 호이스팅 vs. 변수 호이스팅: 함수 객체로 초기화 / undefined로 초기화
  • 함수 표현식은 변수에 할당되는 값이 함수 리터럴인 문 -> 변수 선언문과 변수 할당문을 한 번에 기술한 축약 표현과 동일하게 동작함
    • 변수 할당문의 값은 할당문이 실행되는 시점, 즉 런타임에 평가됨. 함수 표현식도 마찬가지 -> 함수 표현식은 변수 호이스팅이 발생(함수 호이스팅 X)
  • 함수 표현식 이전에 함수를 참조하면 변수 선언문처럼 undefined로 평가되므로 이때의 함수 호출은 undefined 호출 -> 에러 발생
5. Function 생성자 함수
  • Function 생성자 함수: 빌트인 함수인 Function 생성자 함수를 사용해 new 연산자와 함께 호출하면 함수 객체를 생성해서 반환. new 연산자는 생략 가능함
  • Function 생성자 함수로 생성된 함수는 다른 생성 방식의 함수와 다르게 동작하므로 사용하지 않는 것이 바람직함
화살표 함수
  • function 키워드 대신 화살표를 사용한 함수 선언 방식. 항상 익명 함수로 함수를 정의함
  • 생성자 함수로의 사용 불가능, this 바인딩 방식의 차이, prototype 프로퍼티 없음, arguments 객체를 생성하지 않는 등의 차이가 있음

'스터디로그 > javascript' 카테고리의 다른 글

메모리 누수  (0) 2021.02.08
함수 1  (0) 2021.01.15
Number() vs. parseInt()  (0) 2021.01.09
원시 값과 객체  (0) 2021.01.02
객체리터럴 2  (0) 2020.12.21