-
[javascript] 35. 끌어올리기(Hoisting) - 자바스크립트 강좌 JS / CSEWeb/JavaScript 2015. 6. 13. 15:25
JavaScript Hoisting
끌어올림(Hoisting)은 자바스크립트의 선언부를 상단에 위치시키는 기본적인 행위 입니다.
1. JavaScript Declarations are Hoisted
자바스크립트에서, 변수는 사용되기 전에 선언되어야 합니다.
예제 1과 예제 2는 같은 결과를 냅니다:
예제 1:
1234567x = 5; // Assign 5 to xelem = document.getElementById("demo"); // Find an elementelem.innerHTML = x; // Display x in the elementvar x; // Declare xcs 예제 2:
12345var x; // Declare xx = 5; // Assign 5 to xelem = document.getElementById("demo"); // Find an elementelem.innerHTML = x; // Display x in the elementcs 2. JavaScript Initializations are Not Hoisted
자바스크립트는 단지 선언만 끌어올립니다. 초기화가 아닌.
예제 1과 예제 2는 다른 결과를 냅니다.
예제1:
12345var x = 5; // Initialize xvar y = 7; // Initialize yelem = document.getElementById("demo"); // Find an elementelem.innerHTML = x + " " + y; // Display x and ycs 예제2:
1234567var x = 5; // Initialize xelem = document.getElementById("demo"); // Find an elementelem.innerHTML = x + " " + y; // Display x and yvar y = 7; // Initialize ycs 예제2에서 y에 대한 출력은 undefined로 나타납니다.
이러한 이유는 y가 초기화되는 것을 끌어올리지 않았기 때문입니다.
예제3은 예제 2과 같은 결과를 냅니다:
1234567var x = 5; // Initialize xvar y; // Declare yelem = document.getElementById("demo"); // Find an elementelem.innerHTML = x + " " + y; // Display x and yy = 7; // Assign 7 to ycs 3. Declare Your Variables At the Top !
끌어올림은 알려지지 않은 혹은 간과하는 행위 중 하나 입니다.
개발자가 끌어올림을 이해하지 못 한다면, 프로그램은 버그(에러)를 갖게 됩니다.
버그를 피하기 위해서는 항상 모든 변수를 상단부의 시작에 선언하시길 바랍니다
'Web > JavaScript' 카테고리의 다른 글
[javascript] 38. 좋은 지침(Bset Practices) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 37. Style Guide - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 36. Strict Mode - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 34. 디버깅(debugging) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 33. 에러 - try/catch 문(Error - try / catch throw) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 32. 정규표현식(regular expression) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13