: 프로그램을 구성하는 주요 '구성요소'
: 코드 중복 제거
내장함수 : alert, promt, confirm 등
함수 선언
1) 함수 선언문
function name(parameter1, parameter2, ... parameterN) {
// 함수 본문
}
2) 함수 표현식 (아래 링크 및 다음 게시물)
3) 화살표 함수 (참고)
https://kekehome.tistory.com/28
4주차 map과 express, 함수의 형태
string만 담던 mapvalue 로 객체 담기! --> 그냥 객체 만들어서 set()을 통해 객체 담으면 됨! let db = new Map(); //데이터베이스 대신 map 사용let notebook = { productName: "Notebook", price: 2000000,};let cup = { productName:
kekehome.tistory.com
예시
function showMessage() {
alert( '안녕하세요!' );
}
showMessage();
showMessage();
- 메세지를 두 번 호출하고 싶을 때, 위 코드와 같이 함수를 선언해 중복을 피함
지역 변수 : 함수 내부에 선언한 변수는 함수 내부에서만 사용 가능!
function showMessage() {
let message = "안녕하세요!"; // 지역 변수
alert( message );
}
showMessage(); // 안녕하세요!
alert( message ); // ReferenceError: message is not defined (message는 함수 내 지역 변수이기 때문에 에러가 발생합니다.)
- 함수 내부에서 선언한 message 변수를 외부에서 사용하면 에러
외부 변수 (전역 변수) : 함수 외부에서 선언한 변수를 내부에서 그냥 사용 가능
function showMessage() {
let message = 'Hello, ' + userName;
alert(message);
}
let userName = 'John'; //함수 아래에 변수를 선언해도 잘 실행됨
showMessage(); // Hello, John
//단 함수 사용 아래에 userName을 선언하면 아무것도 뜨지 않음
- 외부 변수의 경우 함수 '사용' 이전에만 사용되면 코드가 잘 실행됨
- 함수 내부에서 수정 가능
let userName = 'John';
function showMessage() {
userName = "Bob"; // (1) 외부 변수를 수정함
let message = 'Hello, ' + userName;
alert(message);
}
alert( userName ); // 함수 호출 전이므로 John 이 출력됨
showMessage();
alert( userName ); // 함수에 의해 Bob 으로 값이 바뀜
- 외부 변수와 같은 이름으로 함수 내부에 선언할 경우
let userName = 'John';
function showMessage() {
let userName = "Bob"; // 같은 이름을 가진 지역 변수를 선언합니다.
let message = 'Hello, ' + userName; // Bob
alert(message);
}
// 함수는 내부 변수인 userName만 사용합니다,
showMessage();
alert( userName ); // 함수는 외부 변수에 접근하지 않습니다. 따라서 값이 변경되지 않고, John이 출력됩니다.
- 함수 내부의 변수가 우선임!
매개변수 (=인자)
: 데이터를 함수에 전달 가능하여 함수 내부에서 사용되는 변수 / 지역변수
- 인수 : 함수 '사용' 시에 매개변수로 전달'되'는 데이터
function showMessage(from, text) {
from = '*' + from + '*'; // "from"을 좀 더 멋지게 꾸며줍니다.
alert( from + ': ' + text );
}
let from = "Ann";
showMessage(from, "Hello"); // *Ann*: Hello
// 함수는 복사된 값을 사용하기 때문에 바깥의 "from"은 값이 변경되지 않습니다.
alert( from ); // Ann
- 매개변수 : from, text
- 외부 변수와 이름이 같은 매개변수이지만, 외부의 변수에 영향 주지 않음 / 전달된 데이터는 복사된 값일 뿐
- 인수 : from, "Hello"
기본값
: 매개변수에 인수를 전달하지 않는 경우 undefined처리
매개변수에 값을 꼭 전달하고 싶지 않을 때 사용함
function showMessage(from, text = "no text given") {
alert( from + ": " + text );
}
showMessage("Ann"); // Ann: no text given
- 첫번째 매개변수에만 전달했지만, 기본값을 넣어줘 undefined가 출력되지 않음
위 코드에서
showMessage("Ann", undefined); // Ann: no text given
와 같이 undefined 자료형을 전달해도 기본값이 설정돼 있으면, 기본값이 출력됨
반환 값
: 함수가 특정값을 반환할 수 있음 / return 지시자 이용
더하기 함수를 이용해 결과를 반환
function sum(a, b) {
return a + b;
}
let result = sum(1, 2);
alert( result ); // 3
- return a + b 로 결과를 반환해 result 변수에게 할당
return만 명시하는 경우
function showMovie(age) {
if ( !checkAge(age) ) {
return;
}
alert( "영화 상영" ); // (*)
// ...
}
- 함수 즉시 종료
return이 없거나 / return만 있는 경우 --> 그 함수는 undefined 반환
function doNothing() { /* empty */ }
alert( doNothing() === undefined ); // true
function doNothing() {
return;
}
alert( doNothing() === undefined ); // true
함수 이름
: 접두어 붙이기
접두어
- show : 무언가를 보여줌
- get : 값을 반환함
- calc : 무언가를 계산함
- create : 무언가를 생성함
- check : 무언가를 확인 후 불린값 반환함
showMessage(..) // 메시지를 보여줌
getAge(..) // 나이를 나타내는 값을 얻고 그 값을 반환함
calcSum(..) // 합계를 계산하고 그 결과를 반환함
createForm(..) // form을 생성하고 만들어진 form을 반환함
checkPermission(..) // 승인 여부를 확인하고 true나 false를 반환함
'javascript' 카테고리의 다른 글
기본 17. 화살표 함수 (0) | 2024.09.06 |
---|---|
기본 16. 함수 표현식 (0) | 2024.09.06 |
기본 14. switch문 (0) | 2024.09.05 |
기초 13. while과 for 반복문 (0) | 2024.09.04 |
기초 12. nullish 병합 연산자 '??' (0) | 2024.09.03 |