-
JavaScript - 함수선언문, 함수표현식Frontend/JavaScript 2021. 6. 25. 13:12
- JavaScript 함수란 ?
- 기본적인 구성 블록 중의 하나
- 작업을 수행하거나 값을 계산하는 문장 집합 같은 자바스크립트 절차
- 함수 정의(함수 선언)
- 함수의 이름
- 괄호 안에서 쉼표로 분리된 함수의 매개변수 목록
- 중괄호 안에서 함수를 정의하는 자바스크립트 표현
function 함수명(매개변수1, 매개변수2) { return 매개변수1 + 매개변수2; } function square(number) { return number * number; }
- 함수 표현식
- 함수 표현식은 함수명을 지정하거나 지정하지 않을 수 있다.
- 함수 표현식은 함수를 다른 함수의 매개변수로 전달할 때 편리
const square = function(number) { return number * number }; const x = square(4) // x 의 값은 16 입니다.
- 함수 선언문 vs 함수 표현식
- 문법
- 함수 선언문: 함수는 주요 코드 흐름 중간에 독자적인 구문 형태로 존재
- 함수 표현식: 함수는 표현식이나 구문 구성(syntax construct) 내부에 생성
- 자바스크립트 엔진이 언제 함수를 생성하는지(호이스팅과 연관)
- 함수 선언문
- 함수 선언문이 정의되기 전에도 호출 가능
(전역 함수 선언문은 스크립트 어디에 있느냐에 상관없이 어디에서든 사용 가능) - 이유: 스크립트를 실행하기 전 준비단계에서 전역에 선언된 함수 선언문을 찾고 해당 함수를 생성
(자바스크립트의 내부 알고리즘) - 스크립트는 함수 선언문이 모두 처리된 이후에서야 실행
- 함수 선언문이 정의되기 전에도 호출 가능
- 함수 표현식
- 실제 실행 흐름이 해당 함수에 도달했을 때 함수를 생성하고 그 시점부터 해당 함수 사용 가능
- 실제 실행 흐름이 해당 함수에 도달했을 때 함수를 생성하고 그 시점부터 해당 함수 사용 가능
- 함수 선언문
- 스코프
- 엄격 모드에서 함수 선언문이 코드 블록 내에 위치하면 해당 함수는 블록 내 어디서든 접근할 수 있지만, 블록 밖에서는 함수에 접근하지 못함
- 함수 선언문
- 함수가 선언된 코드 블록 안에서만 유효
- 함수가 선언된 코드 블록 안에서만 유효
- 함수 표현식
- 블록 밖에서 변수를 선언하고 블록 안에서 함수 표현식을 변수에 할당하면, 블록 밖에서도 접근 가능
- 엄격 모드에서 함수 선언문이 코드 블록 내에 위치하면 해당 함수는 블록 내 어디서든 접근할 수 있지만, 블록 밖에서는 함수에 접근하지 못함
[ 참고자료 ]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Functions
함수 - JavaScript | MDN
함수는 JavaScript에서 기본적인 구성 블록 중의 하나입니다. 함수는 작업을 수행하거나 값을 계산하는 문장 집합 같은 자바스크립트 절차입니다. 함수를 사용하려면 함수를 호출하고자 하는 범
developer.mozilla.org
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/function
함수 표현식 - JavaScript | MDN
function 키워드는 어떤 표현식(expression) 내에서 함수를 정의하는 데 사용될 수 있습니다.
developer.mozilla.org
https://ko.javascript.info/function-expressions
함수 표현식
ko.javascript.info
'Frontend > JavaScript' 카테고리의 다른 글
JavaScript - isNaN() vs Number.isNaN() (0) 2021.07.07 JavaScript - new 연산자와 생성자 함수 (0) 2021.07.06 JavaScript - 객체 메소드와 this (0) 2021.07.06 JavaScript - 객체 (0) 2021.07.06 JavaScript - 엄격 모드(strict mode) (0) 2021.06.25