자바스크립트 코딩 기법과 핵심 패턴

1

‘4장 함수’ 부분을 덕분에 자바스크립을 공부하면서 궁금하고 이상하게 작동했던 이유를 속시원하게 알 수 있어서 좋았다. ‘6장 코드 재사용 패턴’과 ‘7장 디자인 패턴’ 덕분에 사용하는 자바스크립트 라이브러리를 좀 더 이해할 수 있었다.

2

굵직 굵직한 자바스크립트의 문법을 세세하게 다루고 있기 때문에 기본적인 문법만 숙지한 분들에게 많은 도움이 될 것으로 생각된다.


  1. (옮긴이) 일급 객체는 다음과 같은 특징을 가지는 객체다. * 변수는 데이터 구조 안에 담을 수 있다. * 인자로 전달할 수 있다. * 반환 값(return value)으로 사용할 수 있다. * 런타임에 생성할 수 있다. * 할당에 사용된 이름과 관계 없이 고유하게 식벽할 수 있다.

  2. […] 때로는 이러한 패턴들이 엄격한 자료형 언어들이 가지는 특성과 클래스 기반의 상속을 다루기 위한 차선책이 되기도 한다.

  3. […] 그럼 객체란 무엇인가? 객체가 굉장히 많은 기능을 가지고 있으니 뭔가 특별할 것 같지만, 사실 객체는 매우 간단하다. 객체는 단지 이름이 지정된 프로퍼티의 모음이며, 키-값 쌍(다른 언어의 연관 배열과 거의 동일한)으로 이뤄진 목록이다. 객체의 프로퍼티가 함수(함수 객체)일 경우 이를 메서드라고 부른다.

  4. […] 빈(blank) 객체는 사실 완전히 비어 있는 것이 아니다. 빈 객체는 몇몇 내장 프로퍼티를 이미 가지고 있지만 자신이 소유(own)한 프로퍼티가 없을 뿐이다.

  5. […] 즉 선언하지 않고 사용한 변수는 자동으로 전역 객체의 프로퍼티가 되어, 명시적으로 선언된 전역 변수와 별 차이 없이 사용할 수 있다.

  6. 단일 var 패턴, 함수 상단에서 var 선언을 한 번만 쓰는 패턴은 유용하고 시도해 볼 만하다. var a = 1, b = 2, c = 3, i, j;

  7. […] 코드는 두 단계를 거쳐 처리된다. 첫 번째 단계에서는 변수, 함수 선언, 형식 매개변수들이 생성되며 코드를 파싱하고 실행 문맥으로 들어간다. 두 번쨰 단계는 런타임 코드 실행 단계로, 함수 표현식과 지정되지 않는 식별자(선언되지 않은 변수)들이 생성된다.

  8. […] 배열에는 일반적인 for 루프를 사용하고 객체에만 for-in 루프를 사용하는 것이 바람직하다.

  9. […] 항상 표현식의 값과 타입을 모두 확인하는 ===와 !== 연산자를 사용해야 한다.

  10. Function은 어디서 실행 시키든 상관 없이 전역 유효범위를 바라본다. 따라서 지역 변수를 덜 오염시킨다.

  11. […] 결론적으로, new Object()를 사용하지 마라. 더 간단하고 안정적인 객체 리터럴을 사용하라.

  12. 리터럴과 원시 데이터 타입(권장안) * var o = {}; * var a = []; * var re = /[a-z]/g; * var s = “”; * var n = 0;

  13. 자바스크립트에서는 중괄호({}) 지역 유효범위가 없다. 달리 말해서 블록이 유효범위를 만들지 않는다.

  14. […] 함수 내에서 foo와 bar를 정의하면, 실제 변수를 정의한 위치와 상관 없이 끌어올려져 전역 변수인 foo와 bar를 덮어쓰게 된다. 그런데 지역 변수 foo()는 나중에 정의되어도 상단으로 호이스팅되어 정상 동작하는 반면, bar()의 정의는 호이스팅되지 않고 선언문만 호이스팅된다.

Written on August 3, 2016