자바스크립트
실행 컨텍스트 (Execution Context)
들어가며 지난 JavaScript, Front-End 발표 주제는 this 였지만, 공부하다 보니 실행 컨텍스트에 대한 내용이 선행되야 할 것 같아 실행 컨텍스트에 대하여 발표를 하게 되었다. 여러 자료와 책을 참고하며 공부를 하고 있음에도 내용이 잘 와닿지 않아 참고1을 참고2, 참고3, 참고4, 책 인사이드 자바스크립트, Poiema Web을 참고하여 번역을 해보고자 한다. 추가적으로 내가 여러 자료를 찾아보면서 알게 된 내용들도 덧붙일 것이다. 실행 컨텍스트, Execution Context(이하 EC) 라는 개념은 나에겐 낯설었기에 나와 같은 사람들이 있을 것 같아 흔히들 아는 콜스택 을 시작으로 글을 써보도록 하겠다. Call Stack과 EC var x = 'xxx'; function foo ..
JITC, Adaptive-JITC
들어가며 자바스크립트는 컴파일 언어인가요, 인터프리터 언어인가요? 라는 내용을 검색하면 종종 보이는 단어가 있다. 바로 JITC (Just-In-Time Compiler) 라는 단어인데, 같이 나오는 내용인 즉 JITC는 인터프리팅을 하다가, 필요한 부분에 대해서는 컴파일을 하여 최적화를 한다 이다. 이 말은 내용은 맞지만 이름이 틀렸다. 위의 방식은 Adaptive JITC 라고 하여, 최근 대다수의 JavaScript 엔진들이 차용하는 방식이다. 그리고 JITC 는 과거의 JavaScript 엔진들이 차용하던 방식이다. 그렇다면 JITC와 Adaptive JITC는 무엇이고, 이들의 차이점은 무엇인지 알아보자. JITC JITC는, 위에서 언급했듯이 인터프리터 언어와 달리 bytecode를 nativ..
JavaScript 의 역사
JS? ES6? ES? 넷스케이프 커뮤니케이션즈에서 JavaScript를 선보였다. 1995년, 넷스케이프 커뮤니케이션즈는 정적인 HTML을 동적으로 표현하기 위해 JavaScript를 도입하게 되었다. (처음에는 Mocha, 그 다음에 LiveScript, 그 다음에 JavaScript가 되었다) 마이크로소프트에서 JScript를 선보였다. 그러나, JavaScript가 탄생한 뒤 얼마 지나지 않아, MS에서 자바스크립트의 파생 버전인 JScript를 출시하였다. 이로써 JavaScript가 위기를 맞기 시작했다. 더해서 1996년 8월, MS는 JScript를 IE 3.0에 탑재하였다. 그런데 문제는 JScript와 JavaScript가 표준화되지 못하고 적당히 호환되었다는 것이다. 왜냐하면 자사 브..
변수의 타입과 Scope, Hoisting, 함수
타입 타입의 종류 기본형 (Primitive type) null undefined boolean number string 복합형 (Non-Primitive type) object array 타입을 체크하는 방법 console.log(typeof a); Undefined? Undefined(Undeclared)? 두 변수들의 값을 출력하려고 한다. 이 때 선언이 되었지만 값이 없는 변수 a 와 선언조차 되지 않은 변수 b가 있다. var a; console.log(a); // undefined console.log(b); // ReferenceError: b is not defined b를 출력할 때 에러가 난다. 이해가 가는 내용이다. 이어서 두 변수들의 타입을 출력하려고 한다. 이 때 선언이 되었지만 ..