- 함수(function)
- 함수 선언 : function 만들함수명(매개변수 쓸 경우 넣음. 복수면 ,로 구분){함수식}
- 주의할 점은 함수식 안에 let을 선언했다면 지역변수가 되기 때문에 함수식 밖에서는 존재하지 않는 변수가 된다. 당연히 똑같은 변수 지정은 불가능하므로 결과값을 밖으로 나올 수가 없다.
- 그렇기 때문에 return을 사용한다.
- 반환값(return값)을 변수에 저장하거나 출력
- 예시 :
function addSum(num1,num2){return num1+num2;} let result=addSum(1,2); document.write(result);
를 입력하면 3이 출력된다. - 똑같은 형식으로는
function addSum(num1,num2){let result=num1+num2; return result} let aresult=addSum(2,2); document.write(aresult);
를 입력하면 4가 출력된다. 대신 함수 안에 지역변수를 썼기 때문에 밖에서는 다른변수로 지정해야한다. - 매개변수를 안 쓰는 함수의 경우 바로 출력이 되고 만약 매개변수를 쓰는 함수인데 값을 넣지 않으면 사칙연산의 경우 NaN이 나오고 문자열인 경우 undefined가 나온다. 또 특이한 경우가 있는데 함수 중 +인 경우 형식이 숫자만 있으면 둘의 합을 나타내지만 숫자 뒤에 문자열이 있으면 붙어서 나타난다.
- 예를 들어 num1+num2+num3 을 함수로 짜고 1,2,’a’를 하면 1+2는 숫자의 덧셈이라서 3이 되고 3과 ‘a’는 문자열로 취급되어서 결과값은 3a가 나온다.
- num1+num2+num3+num4+num5+num6 이고 1,2,’a’,4,5,’b’의 경우 1+2+’a’+4+5+’b’인데 앞의 1+2만 숫자의 합으로 실행되고 나머지는 문자열처럼 붙어서 3a45b 가 나온다.
- 만약 숫자로 강제변환(Number)을 한 경우 하나라도 문자열이 있다면 NaN이 나온다.
- 설정한 함수명을 typeof에 넣어보면 ‘fuction’라고 뜬다.
- 개발자 모드에서 함수명을 입력하면 로마체f를 띄워준다. 이 말은 함수라는 의미이다
- 대부분 body안의 script에 정의하는데 head에서도 미리 정의 할 수 있다. 바로 function 을 넣으면 안되고 body에서 했던것 처럼 script 안에 짜야 한다
- 함수 작성은 순서와 상관없다. 즉, 함수 호출과 함수 선언은 전후가 없다.
- 함수안에 또 다른 함수를 넣을수도 있다.