Function(함수)
1.함수
- 자주 사용되는 또는 독립적으로 수행하고자 하는 내용을 묶어서 하나의 이름으로 설정해 놓은 것
- 함수 부터가 작업의 단위이며 독립적인 메모리를 할당 받을 수 있는 단위
- 함수 안에서 만들어진 변수는 함수 내에서만 사용이 가능
2.함수의 종류
1) 사용자 정의 함수: 개발자가 만든 함수
2) Maker Function: 제공되는 함수 - 자바스크립트에서는 window 객체의 내장함수
- 자바스크립트에서는 window 객체의 속성이나 함수는 window.을 생략하고 호출이 가능하기 때문
3.함수의 정의
- 자바스크립트에서는 함수도 하나의 자료형(함수가 일급 객체 - python, c 에서도 동일)
var 함수명 = function(매개변수 나열){
함수 내용;
return;
}
2)
function 함수명(매개변수 나열){
함수 내용;
return;
}
- 예전에는 2번째 방법으로 함수를 만들었는데 최근에는 1번째 방법을 권장
4.함수 호출
- 함수명(매개변수)
- 함수명만 입력하면 이것은 함수의 참조를 리턴합니다.
- 함수의 내용이 됩니다.
5.매개변수(argument)
- 함수를 호출할 때 넘겨주는 데이터
1) 매개변수를 만들 때 매개변수의 자료형은 기재하지 않습니다.function(a){ }
2) 함수를 호출할 때 매개변수 대입을 생략할 수 있습니다.
- 매개변수가 있는데 데이터를 대입하지 않으면 그 매개변수는 undefined 가 됩니다.
3) 함수를 정의할 때 매개변수를 기재하지 않았더라도 함수 내부에서 매개변수를 사용할 수 있는데 이 때는 매개변수들이 arguments 라는 배열로 만들어집니다.
6.return
- 함수를 호출한 곳으로 돌아가는 제어문
- return 데이터 형태로 데이터를 가지고 return 할 수 있습니다.
- return 할 데이터가 없다면 return은 생략 가능
7.내부 함수
- 함수 안에 함수를 만드는 것이 가능
8.closure
- 함수가 함수를 리턴하는 경우
- 함수 내의 데이터를 계속 사용하기 위해서
- 함수 내에서 만든 데이터는 함수의 수행이 종료되면 소멸됩니다.
- 함수가 리턴한 데이터도 함수의 수행이 종료되면 소멸
9.내장 함수
- 자바스크립트가 제공하는 함수
- 자바스크립트 안의 window 객체가 제공하는 함수
- 자바스크립트에서는 window 객체의 속성이나 함수는 window. 없이 사용이 가능
1) alert
- 매개변수로 대입된 데이터를 메시지 박스를 이용해서 출력해주는 함수
- 별도의 대화상자를 출력하기 때문에 팝업 창이 차단되면 대화상자를 출력하지 못합니다.
- 대화상자가 출력되는 위치는 브라우저마다 다릅니다.
2) confirm
- 메시지와 2개의 버튼을 출력하는 함수
- 확인과 취소 버튼을 만들어서 출력해주는데 확인을 누르면 true를 리턴하고 취소를 누르면 false를 리턴
3) prompt
- 한 줄 입력상자를 포함하는 대화상자
prompt(메시지, 기본값) 의 형태로 사용하면 확인을 누르면 입력한 데이터를 리턴하고 취소를 누르면 null을 리턴
4) eval
- 태그에 만들어진 name을 가지고 객체를 만들어주는 함수
- document.폼이름.객체이름 형식으로 입력해서 사용
- 최근에는 document.getElementById(id)의 형태로 객체로 만들어서 사용하는 것을 권장합니다.
5) 인코딩 및 디코딩 함수
- encoding: 프로그래밍언어에 입력된 문자열을 메모리에 저장되는 형태로 변경하는 것
- decoding: 메모리에 저장된 형태를 프로그래밍언어나 사람이 알아볼 수 있는 형태로 변경하는 것
url 처럼 컴퓨터가 인식해야 하는 데이터는 영문과 숫자 이외의 글자가 있는 경우 인코딩해서 전달해야 하고 그 결과를 보고자 할 때는 디코딩해서 확인해야 합니다.
escape(): 일부 특수문자를 제외하고 전부 인코딩
- encodeURI(): url에 사용되는 특수문자를 제외하고 인코딩
- encodeURIComponent: 영문과 숫자를 제외하고는 모두 인코딩
대부분의 경우는 encodeURI를 사용합니다.
디코딩 해주는 함수는 unescape(), decodeURI(), decodeURIComponent()
- URL을 인코딩 할 때는 파라미터 부분만 인코딩 해야 합니다.
프로토콜://도메인또는ip/파일경로?파라미터이름=값&파라미터이름=값...
6) parseInt 와 parseFloat
- 문자열을 정수나 실수로 변경해주는 함수
- GUI 프로그래밍에서는 문자열만 입력을 받을 수 있습니다.
- 입력받은 문자열을 숫자로 변경하는 중요한 작업 중의 하나입니다.
- parseInt 와 같은 메이커 함수를 이용해도 되고 직접 구현해보는 것도 중요합니다.