티스토리 뷰
1. 함수
자주 쓰는 기능을 정의.
필요할 때 함수의 이름을 호출해서 사용.
함수 특징
위치에 상관없이 function 키워드가 붙은 함수를 브라우저가 최우선적으로 읽음. 메모리에 할당, 준비.
정의된 함수들을 파악한 후 위에서부터 순차적으로 시행. 따라서 함수 호출 위치가 함수를 선언하기 전에 있을 수 있음.
그러나 관례상 함수 선언을 먼저 해준다.
※ 함수 호이스팅 ※
브라우저는 함수 선언 부분을 가장 먼저 로딩(hoisting)한 후에 실행문을 순차적으로 실행.
스크립트가 바디 끝나기 마지막에 있다고 해도
가장 먼저 읽음(스캐닝). 그다음에 문서를 위에서부터 순차적으로 시행.
-함수 선언
//함수 선언 //함수명
function showStars() { 실행문; }
변수 선언 후 초기화하지 않으면
변수가 가지고 있는 값은 undefined(자바스크립트 특징)
-함수 호출
(먼저 함수 선언한 뒤 함수 호출한 경우)
선언한 함수로 가서 실행한 뒤 함수 호출문으로 내려와 그 다음을 순차적 실행
showStars();
-매개변수
외부에서 받아들이는 매개체 역할
함수의 입장에서 바라보면 매개변수, 호출하는 입장(외부)에서 바라보면 인자
<script> // name은 매개변수 선언.
function greeting(name) {
document.write(name + ' hello<br>');
}
</script>
-반환(return)
종료하면서 결과값을 가지고 돌아가라.
return; 이전까지 실행하고 호출된 자리로 돌아간다. 함수 종료란 뜻.
return은 간단한 수식으로 표현할 수도 있다. ex) return result * 10;
(2) 함수 종류 ★★★
-매개변수도 없고 반환값도 없는 함수
<script>
function showStars() { // 함수 선언
document.write('★★★★★★★<br>');
document.write('★★hello★★<br>');
document.write('★★★★★★★<br>');
}
//함수 호출
showStars();
</script>
→ 결과
★★★★★★★ ★★hello★★ ★★★★★★★ |
-매개변수는 있고 반환값은 없는 함수
<script>
function greeting(name) {
document.write(name + ' hello<br>');
}
// 함수 호출
greeting('hong');
greeting('lee');
</script>
→ 결과
hong hello lee hello |
-매개변수는 없고 반환값은 있는 함수
<script>
function getNum () { // getNum 함수는 (1+2)*10값을 리턴
let result = 1 + 2;
return result * 10;
}
// 함수 호출
document.write('getNum의 값은 ' + getNum() + '<br>');
</script>
→ 결과
getNum의 값은 30 |
-매개변수도 있고 반환값도 있는 함수
<script>
function getSum(a, b){ // getSum 함수는 매개변수 a, b를 더한값을 리턴
return a + b;
}
// 함수 호출
document.write('두 수의 합은' + getSum(2, 3));
</script>
→ 결과
두 수의 합은5 |
*Stack(스택 구조) : 입출구가 같음. ↔ 큐 : 입출구 다름, 선입 선출
함수 호출 관계 관리.
main 함수 실행 중에 showStars란 함수가 호출되면
main 함수가 일시정지, showStars 실행. showStars 실행 종료되면
원래 위치로 돌아가 순차적 실행. 메인 함수까지 실행 완료되면 종료.
차곡차곡 쌓임. 늦게 들어온 게 먼저 나감. 맨 먼저 들어온 게 맨 마지막에 나감.
showStars Main |
수업 파일
'수업 > └JavaScript' 카테고리의 다른 글
자바스크립트 객체 지원 (0) | 2022.01.10 |
---|---|
반복문_중첩 반복문 : 구구단, 테이블 (0) | 2022.01.06 |
반복문_중첩 반복문 (0) | 2022.01.06 |
반복문_for, while, do-while (0) | 2022.01.05 |
연산자_비교, 논리, 조건, 대입 (0) | 2022.01.05 |
- Total
- Today
- Yesterday
- css
- html pre
- 외부구성요소
- 스크립태그
- empty-cell
- text formatting
- 입력양식
- caption-side
- BAEKJOON
- scanner
- JavaScript
- html base tag
- A%B
- ScriptTag
- Java
- html layout
- html
- html atrribute
- typeof
- html a tag
- CascadingStyleSheet
- 변수
- initialized
- border-spacing
- 기본선택자
- selcetor
- html input type
- 미디어 태그
- input type 종류
- improt
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |