[JavaScript] function
1. function 키워드
자주 사용하는 방식이다.
2. Literal
function 키워드로 함수를 정의한 후 해당 함수를 사용하는 경우가 많지만, 리터럴 방식으로도 함수를 정의할 수 있다.
리터럴 방식을 사용할 때는 익명 함수를 사용한다.
x(4, 3) 을 실행 시 12를 반환한다.
3. Constructor
자바스크립트의 built_in 함수인 Function을 사용해 함수를 정의할 수 있다.
4. Self Invoking
정의 후 스스로를 호출한다.
재사용 할 수 없다.
5. lambda (arrow)
람다식을 사용해 함수를 간단하게 표현 할 수 있다.
인자가 하나면 괄호를 생략할 수 있지만 인자가 없거나 두 개 이상인 경우는 괄호를 생략할 수 없다.
Hoisting
자바스크립트는 다른 언어와는 다르게 호이스팅을 지원한다.
여기서 호이스팅은 변수나 함수의 선언을 최상단으로 끌어올리는 작업을 말한다.
자바스크립트에서 함수는 객체로 생각할 수 있다.
따라서 built_in 함수인 arguments.length 와 toString(), call(), apply() 함수를 실행할 수 있다.
arguments.length 함수로 받는 인자의 수를, toString() 함수로 함수를 문자열로 변환한 값을 얻을 수 있다.
call 과 apply 모두 함수를 호출할 때 객체를 전달하기 위해 사용된다.
call은 인자를 따로 전달하고, apply는 인자를 배열로 묶어서 전달하는 차이가 있다.
함수에 파라미터로 값이 전달되는 경우 파라미터는 타입을 정의하지 않고 사용한다.
인자가 제대로 전달됐는지도 확인하지 않고 그냥 실행하기 때문에 주의해야 한다.
인자로 숫자를 하나만 보냈다.
다른 언어 같으면 오류가 발생하겠지만, 자바스크립트는 그대로 실행한다.
함수 내부에서 인자가 정상적으로 전달됐는지 확인하자.
함수 내부에서 argument를 사용해 전달받은 인자를 확인할 수 있다.
인자는 복사돼 전달되기 때문에 객체를 인자로 넘길 시 참조 값이 넘어간다.
따라서 함수 내부에서 전달받은 객체를 조작하면 실제 객체가 바뀌니 조심하자.
'Programming Language > JavaScript' 카테고리의 다른 글
[JavaScript] BOM (0) | 2022.12.09 |
---|---|
[JavaScript] Object (0) | 2022.11.22 |
[JavaScript] AJAX (0) | 2022.11.08 |
[JavaScript] JQuery (1) | 2022.11.08 |
[JavaScript] JSON (0) | 2022.10.25 |
댓글
이 글 공유하기
다른 글
-
[JavaScript] BOM
[JavaScript] BOM
2022.12.09 -
[JavaScript] Object
[JavaScript] Object
2022.11.22 -
[JavaScript] AJAX
[JavaScript] AJAX
2022.11.08 -
[JavaScript] JQuery
[JavaScript] JQuery
2022.11.08