Pages

October 30, 2013

프로 자바스크립트 프로그래머가 되기 위해 알아야할 6가지 필수 요소

RaphaelJS의 개발자 Dmitry Baranovskiy라는 사람이 얘기하는 프로 Java Script 프로그래머가 되기 위해 알아야할 6가지 필수요소에 대해 알아보자. 나는 사실 자바 스크립트 프로그램을 만들지 않는다. 그러나 언젠가는 나에게 닥칠 일로 예상되어 꼭 알아 두어야 하는 과제 같은것으로 마음속 귀퉁이에 짐으로 남아 있다. 일단 이 사람이 이야기하는 내용은 프로 자바스크립트 프로그래머가 되기 위해서는 기초 체력을 탄탄히 다져야 한다는 것이고 그것이 이 사람의 식스팩 이론이다. (열심히 근육을 단련시켜 복근을 만드는 그 식스팩이다.)

그가 아래 슬라이드에 나오는 자바스크립트 코드의 실행 결과를 정확하게 예측할 수 있는가? 정확한 정답을 알고 있다면 당신은 아마도 자바스크립트의 식스팩을 갖추고 있다고 말할 수 있을 것이다.


프리젠테이션에 나와있는 코드의 실행 결과는 다음과 같다.

1. Types & type coercion


> 5 - "4" 
1
> 5 + "4"
54
> +!{}[true]
1
> +[1]
1
> +[1, 2]
Nan
> 7 - "a"
Nan
> 7 / 0
Infinity

2. Operators


> 5 + "4"
"54"
> 5 + null
5
> 4 == "4.00"
true
> null == undefined
true
> 0 == false
true
> 0 == null
false
> null == false
false
> typeof null == "object"
true

> typeof function () {} == "function"
true


3. Object * primitives


> var a = "string"
undefined
> a.length
6
> a.t = 3
undefined
> a.t
undefined


4. Function * constructors


> function f() {};
undefined
> var a = f, b = f(), c = new f, d = f(f);
undefined
> a
function f() {}
> b
undefined
> c
f {}
> d
undefined


5. Closures


> function add(a) { return function (b) { return a + b; }; }
undefined
> add(3)(4) == 7
true



6. Prototype


> function f() {};
undefined
> f.prototype.x = 3;
3
> var a = new f;
undefined
> a.x = 2;
2
> a.y = 1;
1
> var b = new f;
undefined
> f.prototype = { z: 0 };
Object {z: 0}
> var c = new f;
undefined
> b.constructor == f
true
> c.constructor == Object
true

나 역시 자바스크립트를 배우고 있는 입장이라 직접 실행해보기 전에는 이 모든 코드의 결과를 예측할 수 없었고, 현재도 이 코드의 실행 결과를 이해하지 못하는 경우가 대부분이다. 차근 차근 공부해서 왜 이런 결과를 나타내는지 이해하게 된다면 다시 포스팅을 하도록 하겠다 ;)


No comments:

Post a Comment