new와 prototype

JavaScript에서도 다른 여타 언어들처럼 instance를 생성할 떄 new를 사용한다. JavaScript는 prototype으로 instance를 생성해야 하기 때문에 Java나 C++같은 언어와는 다른 방식을 가지고 있다. 내부적으로 어떤식으로 동작하는지 궁금해서 검색해보다가 Douglas Crockford의 책 JavaScript: The Good Parts에 좋은 코드가 있어서 가져와보았다. 아래의 코드는 new가 keyword가 아니라 function이라고 가정했을 때 적어본 것이다.

Read More

Lexical Scope and Dynamic Scope

C/C++, Java, 그리고 JavaScript 같이 우리가 접하는 대부분의 언어들은 Lexical Scope를 사용한다. Lexical Scope는 Static Scope라고도 불린다. 반대의 방식으로는 Dynamic Scope가 있으며 Perl, Bash Shell, APL 같은 몇몇 오래된 언어들이 사용하는 방식이다. 두 방식의 정의는 다음과 같다.

Lexical scope: use environment where function [and variable] is defined
Dynamic scope: use environment where function [and variable] is called

출처: University of Washington CSE341 2014 Spring - Lecture 9

Read More

JavaScript Prototype

JavaScript의 prototype를 처음부터 다시 공부하면서 적어보았다. C/C++와 Java로 프로그래밍을 시작했고 오래써왔기 때문에 prototype을 이해하는데 꽤 오랜시간이 걸렸다. 둘 다 상속, 캡슐화, 추상화, 다형성 등을 전부 지원하지만 접근하는 방식은 좀 다를 뿐 깊게 들어가보면 동작하는 방식은 대동소이하다. Java와 비교하면서 적었기 때문에 Java를 쓰시는 분이면 이해하기 쉬울 듯하다.

Read More

JavaScript Data Types

JavaScript data type은 다음과 같다. 5개의 primitive type – 얼마전에 새로 나온 ECMAScript 2015의 스펙에서는 symbol type이 추가 – 그리고 하나의 object type있다. primitive type은 가장 기본적이고 단순한 값을 가지며 들어가는 모든 값들은 immutable이다.

  • primitive type
    • undefined type
    • null type
    • boolean type
    • number type
    • string type
  • object type

Read More

Github pages로 블로그를 열었습니다

보통 공부하는 내용들을 따로 정리하거나 하는 편은 아닌데 기록으로 남기고 공유해보고 싶다는 생각이 들어서 만들어보게 되었습니다. 일반적으로 Github Pages를 만들 때 Jekyll을 많이 쓰는데 저는 단지 요즘 JavaScript에 꽂혀있는 관계로 Node.js 기반인 Hexo를 이용해서 블로그를 만들어 보았습니다. Jekyll은 Ruby기반인데 별로 써본적이 없어서 불편하기도 하구요.

기본 셋업에 Hexo 사이트에 올라와 있는 Theme을 적용해서 좀 밋밋합니다. 계속 조금씩 업데이트해서 부족하나마 개성을 줘 볼 생각입니다. 바닥부터 새로 만들어 볼까도 생각해봤는데 그러기엔 시간이 너무 걸릴 것 같네요.

아마 블로깅의 대부분은 개발에 대한 내용이 되지 않을까 싶습니다. JavaScript, Java, CSS 등등 – 특히나 프론트엔드 – 일하면서 새로 배우는 내용이라던가 개발관련 번역이라던가 이것저것 생각하고 있습니다.