개발 공부

Javascript 함수의 특징

준군 2020. 9. 6. 20:53

최근에 jsp로 웹 개발을 하면서 javascript의 중요성을 많이 느꼈다. jsp에서는 조금 복잡하게 쓰였던 코드들이 javascript에선 간단하게 쓸 수 있었다. 앞으로는 javascript를 주기적으로 공부할 계획이다. 오늘의 내용은 java에서의 함수와 javascript에서의 다르게 쓰이고 있어서 javascript 함수의 특징을 써보았다.

1. 함수는 객체 타입중에 하나이다.

Java와 비슷하게 javascript에서는 기본 데이터 타입과 객체 타입으로 종류가 나뉜다. 기본 데이터 타입에는 boolean, number, string, symbol, undefined, Bigint 등이 있고 그 외에는 객체 타입으로 이루어지는데 javascript에서 함수는 객체 타입 중에 하나로 구분된다. 아래는 a라는 변수에 함수를 정의하고 b라는 변수에 함수를 호출시키는 방법이다.

 

var a = function(x,y){ return x + y; } 
var b = a(2,3);

 

아래는 다른 add 라는 변수에 함수를 정의하는 방법이다. 이 방법은 좀 특이함을 알아챌 수 있다. 

var add = new Function("x, y", "return x+y;"); 

 

아래는 가장 흔하게 쓰이는 함수 정의 방법이다.

function add(x, y){    return x + y;

2. 함수 안에 함수를 정의 할 수 있다.

아래는 전역변수 a를 처음에 선언한 후, 마지막에는 f1 함수를 호출한다. 그런데 f1 함수 정의를 보면 먼저 a를 2로 바꿔준 후 f2 함수를 호출하는데, f2 함수는 f1 함수 안에서만 정의돼있으므로 f1 함수 안에서만 호출할 수 있다. 결국 f2 함수가 a=3으로 바꿔준다.

 

a = 1;
function f1(){
   a = 2;
   f2();
   function f2(){
      a = 3;
   }
}
f1();