티스토리 뷰
- 함수는 값으로 취급된다.
- 함수의 자료형은 호출이 가능한 객체이다.
- 함수는 객체처럼 함수에 프로퍼티를 추가·제거하거나 참조를 통해 전달할 수도 있다.
함수 선언문
function name(parameters){
code block
}
- function: 키워드
- name: 함수 이름
- parameters: 매개변수(매개변수가 여러 개 있다면, 콤마로 구분)
* parameter와 argument의 차이
함수 표현식
익명 함수 표현식
let funcName = function(){ ... };
함수를 만들고, 그 함수를 변수에 할당한다.
기명 함수 표현식
let funcName = function func(){ ... };
function 뒤에 이름을 붙인다.
Q. 기명 함수 표현식과 익명 함수 표현식의 차이는?
- 기명 함수 표현식은 함수에 이름을 사용해서 함수 표현식 내부의 자기 자신을 참조할 수 있다.
- 기명 함수 표현식의 함수의 이름은 외부에서 사용할 수 없다.
// 기명 함수 표현식
let namedFun = function fun(who){
if(who){
console.log(who + '님, 환영합니다.');
} else {
fun('손'); // ----------------------------- 기명 함수 사용
}
};
// 익명 함수 표현식
let anonymousFun = function(who){
if(who){
console.log(who + '님, 환영합니다.');
} else {
anonymousFun('손'); // --------------------- 자신의 함수 사용
}
};
// 새로운 변수에 할당
let copy_namedFun = namedFun;
let copy_anonymousFun = anonymousFun;
// 기본의 변수에 null 할당
namedFun = null;
anonymousFun = null;
함수 선언문과 함수 표현식의 세미콜론 유무
함수 선언문에는 세미콜론이 없지만, 함수 표현식에는 세미콜론이 붙어있다.
function name(){ ... }
let name = function(){ ... };
if문, for문, 함수 선언문과 같이 중괄호로 만든 코드 블록(statement) 끝에는 세미콜론이 없어도 된다.
하지만 함수 표현식은 값(value)의 역할을 하기 때문에 세미콜론을 붙이는게 좋다.
함수를 호출하는 방법
name();
함수 이름 오른쪽에 "실행 연산자"를 사용해서 호출할 수 있다.
[실행 연산자를 사용하지 않았을 경우]
name
함수 소스 코드가 문자형으로 바뀌어 출력된다.
함수를 복사하는 방법
let user;
user = age //함수의 소스 코드가 복사되면서 user()을 사용할 수 있게 된다.
user = age() //함수의 값이 복사된다.
함수의 값을 반환(return)하는 방법
function name(){
return 'mill';
}
- "지시자 return"을 사용한다.
- return은 함수 내 어디서든 사용할 수 있다.
- 실행 흐름이 return을 만나면 함수 실행은 즉시 중단되고, 함수를 호출한 곳에 값을 반환한다.
- return문이 없거나, return 지시자만 있으면 undefined를 반환한다.
[주의사항]
return과 값 사이에 새 줄을 넣어 코드를 작성하면 아무것도 반환하지 않는다.
function sum(one, two){
return
one + two
}
sum(3, 7) //undefined
여러 줄에 걸쳐 작성하고 싶다면 괄호를 사용해야 한다.
function sum(one, two){
return (
one + two
)
}
sum(3, 7) //10
[공부 좌표]
[참고]
'이론 > JS' 카테고리의 다른 글
[JS] 객체의 참조 (0) | 2021.01.03 |
---|---|
[JS] Q. 함수 선언문과 함수 표현식의 차이는? (0) | 2021.01.02 |
[JS] Math.max / Math.min (0) | 2021.01.02 |
[JS] 자료형 변환 (0) | 2021.01.02 |
[JS] Q. 리터럴과 생성자의 차이는? (0) | 2020.12.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 동등 연산자
- innerHeight
- 프로퍼티
- offsetHeight
- 링크막기 #a링크막기
- 동치 연산자
- 대괄포 표기법
- offsetTop
- javascript class
- prototype 프로퍼티
- __proto__
- [[Prototype]]
- 점 표기법
- scrollTop
- @font-face
- 객체의 프로퍼티
- property
- 불일치 연산자
- clientHeight
- constructor
- 일치 연산자
- scrollHeight
- clinetTop
- outerHeight
- 부등 연산자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함