데이터를 저장할 때 변수를 사용한다. 변수에는 데이터만 저장할 수 있고 실행문을 저장할 수는 없다.
하지만 함수를 사용하면 실행문을 저장했다가 필요할 때 마다 호출하여 사용할 수 있다.



기본 함수 정의문

함수를 사용하여 실행문을 저장한 것을 함수 정의문이라고 한다. 함수 정의문은 아래처럼 선언해서 사용할 수 있다.


/*
  function 함수명(){
    실행문;
  }
*/


아래와 같이 익명 함수를 선언하고, 변수에 참조시켜도 가능하다.


/*
  참조변수 = function(){
    실행문;
  }
*/



함수 정의문 {} 내에 작성된 실행문은 코드가 로딩될 때 바로 실행되는 것이 아니고, 함수 호출에 의해서만 실행된다.
정의된 함수를 호출하는 기본문법은 아래와 같다.


/*
  함수명();  또는 참조변수();
*/




매개변수가 있는 함수 정의문

기본 함수 정의문은 함수 내에 있는 실행문을 실행시킬 때, 단순히 함수명으로 호출해서 실행했다. 즉, 함수를 호출할 때 값을 전달할 수는 없다.

하지만 매개변수가 있는 함수 정의문은 함수를 호출할 때 전달 값을 입력하여 호출할 수 있다. 이렇게 전달된 값은 매개변수가 받아서 함수 정의문 내의 실행문에 사용할 수 있게 된다.

아래는 함수를 호출할 때 값을 전달하는 기본문법이다.


/*
  function 함수명(매개변수1, 매개변수2, ... 매개변수n){
    실행문;
  }
  
  함수명(데이터1, 데이터2, ... 데이터n);
*/

함수를 호출할 때, 데이터1은 매개변수1에 저장되고 데이터2는 매개변수2에 저장된다.




내장함수

내장함수는 자바스크립트 엔진에 내장된 함수 정의문을 말한다. 앞서 함수는 반드시 개발자가 함수 정의문을 선언하고 호출을 해야만 함수 내 실행문을 실행할 수 있었다.

하지만 내장함수는 이런 함수 정의문의 선언 없이 단지 호출만으로 자바스크립트에 이미 내장되어 있는 함수들을 사용할 수 있다.

-내장함수의 종류
parseInt() : 문자형 데이터를 정수형 데이터로 바꾼다.
parseFloat() : 문자형 데이터를 실수형 데이터로 바꾼다.
String() : 문자형 데이터로 바꾼다.
Number() : 숫자형 데이터로 바꾼다.
Boolean() : 논리형 데이터로 바꾼다.
inNaN() : 데이터에 숫자가 아닌 문자를 포함하면 true를 반환한다.
eval() : 문자형 데이터를 따옴표가 없는 스크립트 코드로 처리한다.