1. 동적 타입
-> 변수에 저장할 정보가 어떤 타입인지 사전에 지정할 필요가 없다
tip) 변수 타입이 궁금할때는 typeof를 이용하면 됨
2. 변수 호이스팅(hoisting)
-> 자바스크립트는 보통 위에서 아래 순서대로 진행될거라 기대하지만, 실제로 그렇지는 않다.
-> 반복문에 변수가 선언 되었을 경우 변수가 속한 함수 컨텍스트의 최상단으로 끌어올려진다.
이 때문에 변수 명이 충돌하는 문제가 발생 할 수 있다.
ex) var numLoops =100;
for(var i =0 ; i < numLoops; i++){
console.log(i);
}
위와 같은 코드를 짜면
다음과 같이 동작한다.
var numLoops =100;
var i;
for(i=0 ; i < numLoops; i++){
console.log(i);
}
3. 함수 단위의 유효범위
프로그램에서 변수 유효범위(variable scope)은 어떤 변수가 어떤 컨텍스트에서 접근 가능한지를 알려 주는 개념이다.
일반 적인 프로그램 언어는 {} 단위로 블록을 설정 하지만 자바스크립트는 함수레벨에서 유효범위를 갖는다. 즉 자바스크립트는 블록이 아니라 변수가 속한 함수 기준으로 접근을 제한한다.
4. 전역 네임스페이스
-> 네임 스페이스 개념 http://www.joy24.net/78
프로젝트가 복잡해지면 네임스페이스 충돌 문제가 발생할 수 있다
이를 해결 하기 위한 방안은 다음과 같다.
- 함수 안에서만 변수를 선언한다. 보통은 실현하기 어렵지만, 함수 레벨 유효 범위는 다른 변수와의 충돌을 막아 준다.
-전역 객체를 하나 선언하고, 그 객체에 필요한 전역 변수를 모두 추가 한다.
'프로젝트 관련 조사 > 웹' 카테고리의 다른 글
프론트엔드(Front-end) 와 백엔드(back-end) (0) | 2015.10.14 |
---|---|
SVG 가 뭦지?? (0) | 2015.09.11 |
JSON 이란?? (0) | 2015.09.11 |
웹 기초 (0) | 2015.09.09 |
python 간단한 웹서버 (0) | 2015.09.08 |