본문 바로가기

BOOK

[책] 이펙티브 자바스크립트 - 인사이트

이 책 말고도 이펙티브 시리즈의 책이 더 있다.

제일 처음 나온 스캇 마이어스의 C++ (부류가 3권이다. Effective C++, Effective More, Effective STL), Effective Java, Effective C# (1판에서 절판되어 아쉽). 내 생각으로는 네 번째 이펙티브 시리즈가 아닌가 생각이 된다.


이 책을 읽고나면 그동안 자신이 만든 자바스크립트에 대해 한번씩 점검을 해야 할지도 모르겠다.

왜냐하면 자신이 제대로 동작할 것이라고 생각했던 것이 이 책을 읽고 버그가 숨어 들어가 있는 것을 알게 되었을 가능성이 있기 때문이다. 괜찮은 항목은 아래 '책 안에서'에 기록을 해두었다.


지금 읽고 있는 번역본이 초판 1쇄인데 나름 오타가 있다. 138쪽까지 2개 발견해서 초판치고는 양호하네라고 생각했는데...

목차에서 대량으로 숫자를 밀려쓴 것을 좀 전에 발견했다.


[정오표]

p.v

 (밀려씀) 차례 아이템19~30 => 아이템 18~29

 (빠짐) 4장의 아이템 30 prototype, getPrototypeOf, __proto__의 차이점을 이해하라 110

p.22 하기는 -> 하기는

p.69 3local -> local

p.151 . -> - (점이 아니라 산술 마이너스 연산자가 와야 함)

Array.prototype.last = functions() {

    return this[this.length . 1];

}

p.159 한줄 주석을 붙여쓰는 것이 좋을 듯(여태까지는 그랬으면서 이것만 줄바꾼 의도가 궁금함)

var empty = Object.create(null);

"__proto__" in empty;

// false (몇몇 실행 환경에서)

var hasOwn = {}.hasOwnProperty;

hasOwn.call(empty, "__proto__");

// false (몇몇 실행 환경에서)

대신 아래와 같이

var empty = Object.create(null);

"__proto__" in empty;    // false (몇몇 실행 환경에서)

var hasOwn = {}.hasOwnProperty;

hasOwn.call(empty, "__proto__");    // false (몇몇 실행 환경에서)


p.181 아이템20 -> 22

p.192 hosename -> hostname


[읽기 기록]

  1. 10/27 ~p.8
  2. 10/28 ~p.74
  3. 10/29 ~p.126
  4. 10/30 ~p.182
  5. 10/31 ~p.222
  6. 11/01 ~p.262(完)


[책 안에서]

괜찮은 항목들을 추려봤다.

9 항상 지역 변수를 선언하라.

11 클로저에 익숙해져라

12 변수 호이스팅에 대해 이해하라

18 함수, 메소드, 생성자 호출의 차이를 이해하라

19 고차 함수에 익숙해져라

33 생성자가 new와 관계 없이 동작하게 만들어라

34 메서드를 프로토타입에 저장하라

36 인스턴스의 상태는 인스턴스 객체에만 저장하라

...

p.143 (41)

 좋은 프로그래머는 추상의 한계선을 언제 지켜야 하는지 알고 있다.