728x90
20220803(수)
- 목차
- 함수
- 임시 변수
- 시험
< 함수 >
함수 통에는 원인이 여러 개가 들어간들, 결과를 하나로 뽑아야 한다.
console.log("abc");
함수 : 호출 (call) ➡ parameter / Argument ➡ return value
// 함수 기본식
const 함수명 = function()
{
}
// 함수 호출하기
함수명 ();
- 익명 함수 : 함수의 이름이 없음 (확장)
// function prototype(함수원형) = 함수를 사용하는데 필요한 모든 정보
const add = function(val1, val2)
{
let result = val1 + val2;
return result;
}
// 위에 들어가있는 영역과 들어가있지 않은 영역은 완전히 다른영역이다.
let result;
result = add(10,20);
console.log(result);
함수를 사용해서 구구단 짜기
// 함수 기본식
const gugudan = function(dan)
{
let mul =1;
for(let i = 0; i < 9; i++)
{
console.log(`${dan} x ${mul} = ${dan * mul}`);
mul++;
}
}
// 호출하기
gugudan (5);
더보기
[연습문제]
// 사용자한테 숫자를 하나 입력받는다.
// 1 ~ 숫자까지 더하는 코드를 작성
// ex) 5, 1+2+3+4+5
// 단, 1+...+n 더하는 기능은 함수로 구현.
const sigma = function(val)
{
let total = 1;
let inc = 2;
for(let i = 0; i < (val - 1); i++)
{
total = total + inc;
inc++;
}
return(total);
}
// 숫자를 하나 입력받는다.
const input1 = prompt('숫자를 입력하세요','');
const num1 = Number(input1);
// sigma(입력받은숫자)를 호출한다.
let res = sigma(1);
console.log(res);
res = sigma(2);
console.log(res);
res = sigma(3);
console.log(res);
res = sigma(4);
console.log(res);
< 임시 변수 >
- 임시 변수를 왜 쓸까?
코드 축약 및 추가 가능(개발자들이 편해) ➡ 가변적으로 사용할 수 있구나! - 예시로 더 자세히 알아봅시다!
변수를 사용하면 연산을 한 번씩 밖에 못한다.
10 + 5 + 7 + 9 하려면
let k = 10 + 5
let g = k + 7
let z = g + 9 이렇게 해야 함. (명시적 접근 가능)
근데 임시 변수로 사용하면 (명시적 접근 불가능)
let z = 10 + 5 + 7 + 9
➡ 우리가 변수 설정 안 해도 v8 엔진이 우리가 접근할 수 없는 메모리 블록을 하나 만들어 계산함.
그래서, 원래 let k = add (4, 5) + 6;는 k가 15로 나오는게 아니다.
k값이 6 나오는 게 정상임 // 한 번에 한 번만 계산할 수 있으니까 add만 계산됨
근데 임시 변수로 add(4, 5)를 처리한 다음에 + 6을 계산하기 때문에 결괏값이 15 로잘 나온다.
add(add(4,5), 6);
1) 임시 변수를 하나 만들고 add(4, 5)를 먼저 실행 = 9
2) 임시 변수에 9가 들어 감, add(9, 6)이 된다.
// 세개의 숫자를 더하는 함수를 만들어본다.
const add = function(val1, val2)
{
return val1 + val2;
}
const add3 = function(val1, val2, val3)
{
let a1 = add(val1, val2);
let result = add(a1, val3); // 함수가 함수를 호출할 수 있다.
return result;
// 위 세줄을 아래 한줄로 요약할 수 있음
// return add(add(val1, val2), val3);
}
let result = add3(1, 4, 5);
console.log(result);
< 함수가 실질적으로 어떻게 움직이는지? >
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백 (0) | 2022.08.05 |
---|---|
[12일차] for 응용 / function 응용 / Debugger (0) | 2022.08.05 |
[10일차] 반복문 for / while / 제어 break 와 continue (0) | 2022.08.02 |
[9일차] JavaScript Switch / Array (0) | 2022.08.01 |
[8일차] 프로그래밍 / Datatype 자료형 / if-else 문 (0) | 2022.07.29 |