갬발자의 프로그래밍/Javascript17 개념과 특징 컴파일 언어는 c, c++, java 등의 언어가 대표적이다. 특징은 소스 코드를 실행기 전에 먼저 기계어로 번역하고 실행한다. 여기서 번역하는 행위를 컴파일이라 하며 컴파일을 수행하는 소프트웨어를 컴파일러라 한다. 이는 컴파일하는 데에는 시간이 걸리지만 실행되는 속도는 빠르다. 인터프리터는 javascript, python, perl 등이 대표적이다. 특징은 한줄마다 기계어로 바로 번역해서 실행한다. 프로그램을 번역해서 실행시키는 소프트웨어를 인터프리터라고 한다. 한 줄씩 번역하며 실행하기에 컴파일 언어보다 처리속도가 느린 점이 있다. 특징 1. 자바스크립트는 인터프리터 언어다. JIT 컴파일러 때문에 실행 속도가 느리지 않다. 2. 프로토타입 기반 언어 3. 함수가 일급 객체이다. 이로 인해 함수를 .. 2020. 1. 5. 즉시실행함수, Closure 자동으로 함수를 실행 즉시 실행 함수 표현(IIFE) 임 (function(){ //dosomething })(); 위와 같이 사용할 수 있다. 클로저 var outFoo = function(){ var x = 'access'; return function inFoo(){ return x; } } var foo = outfoo(); console.log(foo()); // access 안쪽에 있는 함수가 x를 바깥쪽 함수에 접근한다. 중첩된 함수는 외부 범위에서 선언한 변수에도 접근 가능하다. 2019. 12. 24. this의 참조 실행 콘텍스트의 this 바인딩 컴포넌트에 바인딩되어 객체를 참조 console.log(foo() === window.foo()); //true 기본적으로 this는 전역 객체를 참조한다. 만약 어떠한 객체를 참조하고 있다면 this는 그 객체를 참조하게 된다. function foo(){ console.log(this); } foo()// window const obj = { foo: foo }; obj.foo() // obj 또한 this는 객체 속성의 내부함수로 this가 있다면 그 this는 window를 가리키게 된다. 콜백 함수의 this도 window 객체를 가리킨다. 내부 함수 const obj = { foo: function(){ console.log(this); // obj functi.. 2019. 12. 24. prototype 자바스크립트는 prototype 기반 언어라고 한다. 내가 공부한 것은 prototype을 통해 object 객체를 복사해서 새로운 객체를 생성하고 그 객체는 다른 어떤 객체의 원형이 되어 prototype으로 접근할 수 있다는 것이다. 일단 예를 들어보자 var Foo = function(){}; 위와 같이 Foo라는 새로운 object를 정의하면 동시에 Foo Prototype Object 생성된다. 그렇게 되면 여기서 new를 통해 생성된 객체는 Foo의 prototype을 사용할 수 있게 된다. var Foo = function(){}; var foo = new Foo(); 아래와 같은 결과를 확인할 수 있다 __proto__때문에 객체의 prototype과 연결되는 연결고리가 되어 사용할 수 있.. 2019. 12. 23. 이전 1 2 3 4 5 다음