!! 다시보자

 

 

!!함수란? 입력을 받으면 출력을 하는 과정?  

 

함수를 쓰는 이유 - 재사용 하기 매우 좋다. 함수를 재사용함으로써 코드의 신뢰도가 올라간다.

 

함수의 구성 - 함수 이름, 매개변수, 함수몸체, 인수 등이 있다.

 

함수이름 - 함수이름은 함수내에서만 동작한다. 식별자 명명법에 따른다. 생략가능하다(선언문 제외)

 

매개변수 - 함수 내에서만 작동 기존 변수의 특징을 가지고 있따. 초기화 시에 undefined, 값에의한 전달

참조에 의한 전달 등, 없어도 됨, 식별자 명명법 따라야함  

 

return - 함수를 끝내고 값을 반환한다. 생략가능 대신 undefined 출력

 

인수 - 순차적으로 매개변수에 할당된다.  매개변수가 2개인데 3개를 넣으면 마지막 것 무시, 하나가 들어간다면?

인수, undefined가 매개변수에 들어가 있을 것이다. JS 변수선언 키워는 타입을 가리지 않고 받기에 원하는 타입을 받기 위한 조치가 필요하다. 인수의 숫자 역시 다르게 들어 갈 수 있으므로 주의 필요

 

함수 정의 4가지 방법 

 

함수 선언문 - 함수이름이 생략 불가능하다. 함수이름으로 언어차원에서 암묵적으로 식별자를 만들기 때문이다. 

함수 표현식과 변수 대입 빼곤 차이가 없어보여 왜 생략불가능인가 의문이 들 수 있다. JS는 문맥으로 판단한다.

{}도 코드블록인지 아닌지 문맥으로 판단하고 이것 역시 마찬가지 

 

함수 표현식 - 일급 객체이다. 일급객체는 값이자 객체인 것. 선언문과 표현식은 호이스팅 차이가 있다. 선언문은

스코프 최상단에 객체가 들어가 초기화 된다. 표현식은 var 키워드에 할당하면 undefined로 초기화 되고 선언문에서 객체가 들어간다.

 

화살표 함수, 생성자 함수 이건 나중에 배운다고 함

 

함수의 종류 

 

즉시 실행 함수 - 보통 함수 이름이 없다. 있어도 상관은 없음. 그룹연산자로 감싸서 선언문 형식을 함수리터럴로 만든다.

선언문 형식이지만 선언이 되지 않고 식별자가 만들어지지 않기에 호출은 처음 한번 빼곤 불가능하다.

 

중첩함수 - 내부함수라고도 한다. 함수 안의 함수를 말하며, 외부함수를 돕는 헬퍼 함수이다.

 

재귀함수 - 함수 몸체에서 자신을 다시 호출하는 함수 함수를 반복해서 호출해서 특정한 값을 만들 때 쓴다.

 

고차함수, 콜백함수 - 인수로 함수를 받는 것이 고차함수, 인수로 들어가는 함수를 콜백함수로 칭한다. 

콜백함수가 고차함수 제외하고 호출이 되지 않는다면 즉시실행함수로 표현하는 것이 일반적이다. 

 

순수함수, 비순수함수 - 순수함수는 함수 외부의 변화에 영향을 받지 않으며 주지 않는 함수이다.

비순수함수는 함수 오부의 변화에 영향을 받거나 주는 함수이다.

 

var은 함수레벨스코프다. 함수만 지역함수로 인정하기에 for, if, while 등 다른 블록은 전역함수로 인식하는

문제가 생긴다. 

 

스코프 - 활동영역을 말한다.

 

스코프 체인 - 전역 <- 외부함수 <- 내부함수  내부함수에서 전역 방향으로 식별자를 검색한다. 내부함수에 찾는 식별자가 있다면 전역에 같은 식별자가 있더라도 내부함수의 식별자가 출력된다. 전역레벨에서 식별자를 찾는다면 외부함수나 내부함수 레벨같은 하위레벨로는 내려가서 찾지 않는다. 위로는 올라가도 아래로는 내려가지 않음

 

!! 분명 추가로 더 있는데 기억이 안난다. 다시 찾아 보자 

 

'진행중 > 백지쓰기[복습]' 카테고리의 다른 글

백지쓰기 7일차  (0) 2022.09.05
백지쓰기 6일차  (0) 2022.09.04
백지쓰기 4일차  (0) 2022.08.21
백지쓰기 3일차  (0) 2022.08.20
백지쓰기 2일차  (0) 2022.08.19

+ Recent posts