<함수 정의문>
1. function
function 함수명(매개변수1,...){
실행문;
return 리턴값;
}
- Function으로 선언된 함수는 호이스팅(hoisting) 되어진다.
- hoisting : 함수 정의문보다 호출문이 먼저 나와도 함수 정의문을 끌어올려 함수를 호출
let a2=add(5,8);
console.log(a2); //함수의 hoisting
function add(x,y){
return x + y;
}
let a=add(10,20);
console.log(a);
2. 익명함수
- 함수명이 없는 함수를 선언하고 변수에 참조 가능
- 익명함수는 hoisting이 불가능하다
add(5,8); //hoisting 불가
let add=function(x,y){
return x + y;
}
let a=add(10,20);
console.log(a);
3. 생성자함수
- hoisting이 불가능하다
let add=new Function('x','y','return x + y')
let a = add(10,20);
console.log(a);
4. 화살표 함수
let add= (x,y) => 실행문;
let add=(x,y) => x+y;
let a = add(10,20);
console.log(a);
<정의되어있는 함수 실행>
1. 함수명();
2. 참조변수();
<매개변수가 있는 함수 정의문>
- 함수 호출 시 데이터 1은 매개변수1, 데이터2는 매개변수 2 ... 순서대로 대입된다.
function 함수명(매개변수1, 매개변수2, ...,매개변수n){
코드
}
함수명(데이터1, 데이터2, ...,데이터n)
<매개변수 없이 함수에 전달 된 값 받기>
arguments
- 함수 정의문에서 매개변수가 없는 상태에서 데이터 전달하여 함수 호출하면 그 값이 배열에 저장된다
- 그 값을 arguments 라는 변수로 참조
function 함수명(){
arguments;
}
함수명(데이터1, 데이터2, 데이터3);
예시
function sum(){
var sum = arguments[0] + arguments[1] + argumengs[2];
document.write(sum);
}
sum(10,20,30); //60출력
for문 사용
let sum1=0;
function sum(){
for(let i=0;i < arguments.length;i++){
sum1 += arguments[i];
}
document.write(sum1);
}
sum(10,20,30,40,50); //150출력
(...args)
- 몇개의 가변인자가 올지 모를 때
- 위 결과와 동일
let sum2=0;
function sum(...number){
for(let i=0;i<number.length;i++){
sum2 += number[i];
}
document.write(sum2);
}
sum(10,20,30,40,50); //150출력
'javascript' 카테고리의 다른 글
객체 생성자 함수_프로토타입(prototype) (0) | 2022.11.15 |
---|---|
내장객체_날짜(Date()), 수학객체(Math()) (0) | 2022.11.15 |
BOM(Browser Object Model) 브라우저 객체 모델 (0) | 2022.11.14 |
내장객체_배열(Array) (0) | 2022.11.14 |
객체, 객체 생성자 함수 (0) | 2022.11.14 |