2015년 7월 26일 일요일

자바스크립트의 타입과 문법


자바스크립트의 기본적인 타입과 문법에 대해서 간단하게 살펴본다. 이 글을 읽는 독자는 기본적으로 프로그래밍 언어에 대한 경험이 있다고 가정하고 모든 내용을 자세하게 설명하지는 않는다. 자바스크립트만의 특이할만한 사항을 위주로 살펴본다. 학습테스트는 자바스크립트 테스트 프레임워크인 자스민을 이용해서 작성되었다. 자스민에 대한 사용법은 이 전에 작성했던 "자스민 사용법" 글을 참조하자.
  1. 자바스크립트는 동적 타입언어입니다.
    변수를 선언할 때 별다른 타입을 명시할 필요가 없고, 타입은 실행시간에 자동으로 변환이 됩니다. 아래의 예제에서는 변수를 선언할 때는 "var" 라는 키워드을 사용하였을 뿐, 특별한 타입을 명시하지 않았습니다. 또한 별다른 타입변환 없이 연산이 가능합니다.(물론 사용할때는 주의를 기울여야 합니다.)
  2. 변수
    "var" 키워드를 사용하지 않으면, global 변수를 의미합니다. 아래 예제에서 9 라인과 13 라인을 유심히 살펴보시기 바랍니다.
  3. undefined, null
    변수를 선언하고 아무값도 할당하지 않는 경우 "undefined" 으로 취급됩니다. 하지만 문맥에 따라 undefined 과 null 이 동적으로 변환이 이루어짐을 알 수 있습니다. "undefined" 은 숫자연산구문에서 NaN(Not a Number)으로 취급됩니다. 하지만 "null" 의 경우는 0으로 취급됩니다.
  4. constant
    constant 로 선언된 이름은 변수나 함수이름으로 다시 선언될 수 없습니다. MDN 문서에서는 constant 로 선언된 경우 값을 재할당하는 것도 안 된다고 했으나 테스트 해보니 잘 되었습니다. :-P
  5. array
    일반적인 프로그래밍 언어의 array 와 유사합니다. 라인 6와 같이 값이 없는 경우 undefined 로 취급됩니다. 
  6. object
    오브젝트의 선언과 오브젝트의 멤버들에 접근하는 방법을 유심히 살펴봐야 합니다. 라인 9 에서와 같이 멤버 이름(Key)을 숫자로 사용한 경우 배열과 같이 접근할 수 도 있습니다. 하지만 이름이 숫자가 아닌경우, 라인 4에서 사용한 방식이나 라인 6에서와 같은 방식으로 접근해야 합니다. 라인 8과 같은 경우는 사용할 수 없습니다. 자바스크립트 에러를 발생시키게 됩니다.
  7. 참고
    - MDN - https://developer.mozilla.org/en/docs/Web/JavaScript
    - Jasmine - http://jasmine.github.io/2.3/introduction.html



댓글 없음:

댓글 쓰기