본문 바로가기

갬발자의 프로그래밍/Javascript17

Execution Context var point = 100; var Foo =function(){ this.point = 1; this.setPoint = function(point){ this.point = point }; this.getPoint = function(){ // return this.point; return point; }; } console.log(foo.getPoint()) // 100 출력 생성시점은 실행 가능한 코드를 만났을 때이다. 상태 컴포넌트의 3가지 유형 1. 정적 환경 컴포넌트 2. 변수 환경 컴포넌트 3. this 바인딩 컴포넌트 정적 환경 컴포넌트는 실행 컨택스트에서 함수 안의 함수와 변수들을 기록한 것이다. 변수 환경 컴포넌트는 초기값 복원을 할 때 사용하는 것으로 정적 환경 변수와 같은 레벨로.. 2019. 12. 23.
Argument 처리 형태 arguments 객체가 파라미터를 { key: value } 형태로 저장 function foo(){ return arguments }; console.log(foo(1,2,3)); // 0: 1 ,1: 2, 2: 3, length: 3 결과에서 보이듯이 배열의 형태를 하면서 array 형식으로 반환해준다. 이것은 정확이 배열이 아니며 array-like가 된다. 그렇기에 array의 내장 함수를 사용하지 못한다. 하지만 function foo(){ let newArr = Array.prototype.slice.call(arguments); return newArr; }; console.log(foo(1,2,3)); // (3) [1, 2, 3] 위와 같이 배열로 만들어 사용할 수도 있다. array-.. 2019. 12. 22.
호이스팅 함수 앞에서 함수를 호출하는 것을 호이 스팅이라고 한다. 함수 선언문은 초기화 단계에서 함수 오브젝트를 생성하기 때문에 어디에서도 호출할 수 있다. let foo = hoistingFn(); console.log(foo); // Hoisting function hoistingFn(){ return "Hoisting"; } 이것은 function과도 같은 것인데 처음에 선언문을 찾고 그것을 object화 시키며 등록한다 그다음 foo 변수를 초기화하고 마지막으로 실행 함수를 실행시킨다. 그렇기 때문에 오류 발생하지 않고 해석할 수 있는 것이다. let foo = hoistingFn(); console.log(foo); // Hoisting function hoistingFn(){ return "Hoisti.. 2019. 12. 20.
function function 오브젝트의 저장 형태는 { key : value } 형태로 저장된다. function foo(){} // {foo : {..}} 의 형태로 저장 위와 같이 인식을 하기 때문에 js에서는 오버 로딩이 이 없다 함수가 실행될 환경을 알아야 맞춰서 실행할 수 있기에 함수 실행 환경 인식이 필요하다 function 키워드를 만나 object를 만나는 시점이 실행 환경 설정 시점이다. 여기서 실행 영역을 설정하게 된다. (단 한 번만 스코프만 만들면 된다.) 함수 코드의 해석 순서. 함수 안에 함수 선언문을 해석한다. 변수를 초기화한다. 코드를 실행한다. 함수 정의 형태 함수 표현식 var foo = function(){} 함수 선언식 function foo(){} 함수를 해석할 때 변수를 초기화.. 2019. 12. 20.