2016년 4월 27일 수요일

자바스크립트 변수와 함수

  1. 변수
    자바스크립트는 동적 타입 언어다. 그래서 변수의 선언 시 별도의 타입이 없고 모두 var 변수명 으로 선언한다. 
    var variable;
    
    주의할 점은 변수값이나 객체를 참조할 때 오타가 나면 전역변수로 인식해 버린다는 점이다.
    var variable = 0; // variable 변수선언 및 0 할당
    console.log(variabel); // variable을 variabel로 오타. 콘솔에는 undefined가 표시되고 variabel이라는 변수가 선언된다.
    
  2. 함수
    함수는 아래와 같이 선언한다.
    // function declare 1
    function functionName(args)
    {
        return 0;
    }
    // function declare 2
    var func = function (args)
    {
        return 0;
    }
    
    declare 2에서 보듯 함수이름은 생략 가능하다. 단 이 경우는 인자로 함수를 전달할 때 아니면 선언한 함수를 다른 코드에서 호출할 수 없게 된다. 그래서 위 코드에서는 별도의 변수에 함수를 담아놓았다.
    또 다른 언어와의 다른점은 args로 선언된 호출 인자는 어떻게 보면 별 의미가 없는 선언일 수도 있다는 점이다. 별도의 변수 타입이 지정되는것도 아니고 인자 목록에 제한이 따로 있는것도 아니기 때문이다. 또 심지어 함수의 인자목록이 선언되지 않아도 arguments라는 속성을 통해 호출 측에서 전달한 매개변수에 접근이 가능하다.
    function test (args){
        alert(args);
        alert(arguments[1]);
    }
    test("test1", "test2");
    
    위 코드에서 test 함수는 args라는 매개변수 하나만 선언하고 있다. 그러나 실제 코드에서는 arguments 속성을 통해 호출측에서 전달하는 두번째 인자에 접근하고 있다. 위 코드를 실행해 보면 test1과 test2 라는 경고창이 각각 나타날 것이다.

댓글 없음:

댓글 쓰기