티스토리 뷰
반응형
함수
코드를 메모리에 저장했다가 필요할 때마다 호출하여 사용할 수 있음
변수 | 함수 |
1개의 데이터만 저장 | 자바스크립트 코드를 저장 |
var라는 키워드를 이용해 선언 | function 키워드를 이용해 선언 |
문자,숫자,논리형 데이터를 보관 | 출력문,제어문 등의 코드를 저장하고 데이터를 반환 |
객체를 참조 |
기본 함수 정의문
function 함수명(){
자바스크립트 코드;
}
참조 변수 = function(){
자바스크립트 코드;
}
함수 정의문 안에 작성된 코드는 즉시 실행되지 않음.
함수는 메모리에 할당되어 대기하다가 함수가 호출되면 실행됨
일반 함수 정의 방식과 익명 함수 선언 참조 방식의 차이점
일반 함수 정의는 함수 호출 시 호이스팅(hoisting) 기술을 지원
But 익명 함수 선언 참조 방식은 호이스팅 기술을 지원하지 않음
호이스팅을 적용하면 함수 정의문보다 호출문이 먼저 나와도 함수 정의문을 끌어올려 함수를 호출함
* 호이스팅(hoisting) : 물건을 끌어올리다
A. 일반 함수 정의 방식 (정상 작동) | B. 익명 함수 선언 참조 방식 (오류 발생) |
testFnc(); function testFnc(){ 자바스크립트 코드; } |
testFnc(); var testFnc = function(){ 자바스크립트 코드; } |
var count = 0;
myFnc();
function myFnc(){
count++;
document.write("hello" + count, "<br>");
}
myFnc();
var theFnc = function(){
count++;
document.write("bye" + count, "<br>");
}
theFnc();
myFnc() : 함수 호출문이 먼저 나와도 호이스팅 방식이 적용되어 정상적으로 함수를 호출함
theFnc() : 호이스팅 방식이 적용되지 않아, 함수 뒤에 호출을 해야함
매개변수가 있는 함수 정의문
함수를 호출할 때 전달하고자 하는 값을 입력하여 호출할 수 있음
전달된 값은 매개변수가 받아 함수 정의문에서 사용할 수 있게 됨
function 함수명(매개변수1, 매개변수2, ..., 매개변수n){
자바스크립트코드;
}
함수명(데이터1, 데이터2, ..., 데이터n);
매개변수 없이 함수에 전달된 값 받아오기
함수 정의문에서 arguments을 사용해 매개변수를 사용하는 것처럼 함수 호출문의 값을 받아올 수 있음
함수 정의문에서 매개변수가 없는 상태에서 데이터를 전달하여 함수를 호출하면그 값은 배열에 저장됨
함수 정의문에서는 그 값을 arguments라는 변수로 참조함
function 함수명(){
arguments;
}
함수명(데이터1, 데이터2, 데이터3);
//arguments = [데이터1, 데이터2, 데이터3]
반응형
'Language > JavaScript' 카테고리의 다른 글
[Do it!] 05. 함수 [3.함수 스코프 개념 이해] (0) | 2024.01.19 |
---|---|
[Do it!] 05. 함수 [2.함수에서 return 문의 역할] (0) | 2024.01.19 |
[Do it!] 04. 객체 [브라우저 객체] (0) | 2024.01.05 |
[Do It!] 04. 객체 [배열 객체, 문자열 객체] (1) | 2023.12.28 |
[Do It!] 04. 객체 [기본 객체, 내장 객체-날짜 객체,수학 객체] (1) | 2023.12.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 순환할당
- Objects 클래스
- 함수
- 파이썬
- 자료형
- 문자열함수
- java.time.package
- 리스트연산자
- 기본 API 클래스
- StringBuffer 클래스
- 요소선택
- Random 클래스
- FALSE
- 스레드 스케줄링
- Date 클래스
- StringTokenizer 클래스
- 딕셔너리
- python
- 리스트
- Pattern 클래스
- 프로그램
- not_in
- Math 클래스
- Arrays 클래스
- IndexError
- Format 클래스
- Calendar 클래스
- StringBuilder 클래스
- 역반복문
- 포장 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함