Web/Advanced Web Programming

    Advanced Web Programming - Closure

    클로저 함수 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수를 사용할 수 있습니다. 클로저는 이처럼 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게 하는 폐쇄성을 갖습니다. // 클로저를 만드는 형태 1. - 중첩함수 function outerFn() { let x = 10; return function innerFn(y) { // innerFn 함수는 클로저다. return x = x + y; } } let a = outerFn(); // 외부함수 호출은 한번만. 이제 a 변수는 innerFn 함수를 참조한다. a(5); // 15; a(5); // 20; a(5); // 25; // 클로저를 만드는 형태 2. - 전역에 선언한 변수를 박스 안에서 함수로 정의하고 전역에..

    Advanced Web Programming - lexical scope ( 2 )

    var name = 'zero'; // (1)변수 선언 (6)변수 대입 function wow(word) { // (2)변수 선언 (3)변수 대입 console.log(word + ' ' + name); // (11) } function say () { // (4)변수 선언 (5)변수 대입 var name = 'nero'; // (8) console.log(name); // (9) wow('hello'); // (10) } say(); // (7) 일단 처음 코드를 실행(여기서 실행은 브라우저가 스크립트를 로딩해서 실행하는 걸 말합니다..)하는 순간 모든 것을 포함하여 전역 컨텍스트가 생깁니다. 모든 것을 관리하는 환경입니다. 페이지가 종료될 때까지 유지됩니다. 전역 컨텍스트 말고도 함수 컨텍스트가 있습..

    Advanced Web Programming - lexical scope

    전역 변수와 지역 변수 자바스크립트에서 주로 변수를 사용해 데이터를 저장했었습니다. var로 선언했었습니다. 물론 변수를 만드는 일은 문제가 되지 않았지만. 전역(global)변수를 만드는 일은 최대한 지양해야 합니다. 전역변수란 자바스크립트에서 제일 바깥 범위(함수 안에 포함되지 않은)에 변수를 만드는 겁니다. window객체나 global객체에 변수를 만드는 것입니다. var x = 'global' function ex() { var x = 'local'; x = 'change'; } ex(); alert(x); 다음을 보시면 같은 x여도 ex함수 바깥의 x는 전역변수이고 ex함수 안의 x는 ex함수의 지역변수가 됩니다. 지역 변수는 함수 안에 들어있는 변수를 의미합니다. 스코프 위의 상황에서 지역변..

    Java Script - this 바인딩

    전역 객체(Global Object) 모든 객체의 유일한 최상위 객체를 의미하며 일반적으로 Browser-side에서는 window, Server-side(Node.js)에서는 global객체를 의미하게 됩니다. // in browser console this === window // true // in Terminal this === global // true 전역 객체는 실행 컨텍스트에 컨트롤이 들어가기 이전에 생성이 되며 constructor가 없기 때문에 new 연산자를 이용하여 새롭게 생성할 수 없습니다. 즉 개발자가 전역 객체를 생성하는 것은 불가능합니다. 전역 객체는 전역 스코프(Global Scope)를 갖게 됩니다. 전역 객체의 자식 객체를 사용할 떄 전역 객체의 기술은 생략할 수 있다...