정오표

『프론트엔드 개발자를 위한 자바스크립트 프로그래밍』의 정오표입니다.

원서인 『JavaScript for Web Developers』의 정오표는 여기입니다.

 

—–  3쇄에 반영 예정입니다. —–

105쪽 첫 번째 예제 바로 아래 문단(차형철 님)

첫 번째 함수는 매개변수에 100을 더하고 번째 함수는 200을 더합니다

첫 번째 함수는 매개변수에 100을 더하고 번째 함수는 200을 더합니다

 

87쪽 맨 윗줄(이현지 님)

곱셈 후 할당/(*=)

곱셈 후 할당 (*=)

 

—– 여기까지 2쇄(2015년 10월 7일 발행)에 모두 반영되었습니다. —–

49쪽 18행(김성진 님)

var result = Number.MAX_VALUE + Number.MAX_VALUE

var result = Number.MIN_VALUE + Number.MAX_VALUE

 

50쪽 밑에서 3번째 줄

둘 모두 반환 false를 반환합니다

둘 모두 false를 반환합니다.

 

60쪽 17행(김성진 님)

var age = 29;–

var age = 29;

 

40쪽 두 번째 소스코드 2행(도기동 님)

var message = “hi”; // 전역 변수

var message = “hi”; // 지역 변수

94쪽 본문 2행(하조은 님)

i의 값이 5가 되면 루프에서 빠져나오며 이때 num의 값은 6입니다.

i의 값이 5가 되면 루프에서 빠져나오며 이때 num의 값은 4입니다.

105쪽 셋째 문단 1행(도기동 님)

함수를 두 번 정의했습니.

함수를 두 번 정의했습니.

 

111쪽 위에서 3행(하조은 님)

값이 원시 값이라면 변수 사에서…

값이 원시 값이라면 변수 사에서…

 

116쪽 첫 번째 문단 7번째 줄 (김동욱 님)

… 로컬 컨텍스트에서는 tempColor에 접근할 수 습니다.

… 로컬 컨텍스트에서는 tempColor에 접근할 수 습니다.

136쪽 마지막 줄 (김동욱 님)

… 마지막 줄에서는 슬롯 3을 가리킵니다.

… 마지막 줄에서는 슬롯 4를 가리킵니다.

164쪽 예제 2행 (소문자 a 앞에 스페이스 1칸 필요)

var pattern = /mom(and dad(and baby)?)?/gi;

var pattern = /mom( and dad( and baby)?)?/gi;

 

737쪽 마지막 문단 2행
하지만 “Text”(대문자)는 “text/plain”으로 바꿉니다.
하지만 “Text”(대문자T)는 “text/plain”으로 바꿉니다.

52 thoughts on “정오표

  1. 전은미

    245쪽
    6.5.6 기생 생성자 패턴
    첫번째 줄
    폴백 -> 콜백
    인가요?

    1. eunbyul Post author

      원서에서도 ‘a fallback’이란 단어를 쓰고 있습니다. 그런데 의미가 정확하지 않아, 역자 분께 확인한 후 메일로 답변을 드리겠습니다.

  2. 이달수

    50쪽, 아래에서 3번째 줄

    둘 모두 반환 false를 반환합니다 => 둘 모두 false를 반환합니다.

    반환이 반복된 것 같습니다.

    1. jogamza Post author

      감사합니다. 확인 후 정오표에 반영하겠습니다.

  3. 오탈자

    737쪽, 마지막 문단 2번째 줄
    하지만 “Text”(대문자)는 “text/plain”으로 바꿉니다.
    -> 하지만 “Text”(대문자T)는 “text/plain”으로…

  4. RegExp

    164p 예제 2번째 줄
    var pattern = /mom(and dad(and baby)?)?/gi;
    아래처럼 공백을 넣어줘야되는것 같네요.
    var pattern = /mom( and dad( and baby)?)?/gi;
    책에선 공백이 없어보이는데 예제파일 들여다보고 알았습니다.

    1. jogamza Post author

      정오표에 반영하겠습니다. 감사합니다.

  5. 하조은

    ❓ 94페이지에 2번째줄(코드 제외) num 값은 6 이 아니라 4 아닌지 여쭙고 싶습니다.

    1. jogamza Post author

      안녕하세요, 하조은 님.
      해당 num 값은 4가 맞습니다. 정오표에 반영하겠습니다. 감사합니다.

  6. 하조은

    111페이지 3번째줄 “변수 사에에서” -> “변수 사이에서” 인 것 같습니다.

  7. 김동욱

    116p 전역 컨텍스트나 swapColorsO의 로컬 컨텍스트에서는 tempColor에 접근할 수 있습니다.

    ->> 전역 컨텍스트
    나 swapColorsO의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다.

    1. jogamza Post author

      정오표에 반영하겠습니다.
      -> ‘tempColor에 접근할 수 없습니다.’

    1. jogamza Post author

      정오표에 반영하겠습니다.
      -> ‘슬롯 4를 가리킵니다.’

  8. 김동욱

    136p 마지막 줄

    마지막줄에서는슬롯 3을 가리겁니다.

    ->

    마지막줄에서는슬롯 4을 가리겁니다.

    1. insight Post author

      지적 감사합니다. 우선 역자께 확인 요청을 한 후
      정오표에 반영토록 하겠습니다.

  9. 김동욱

    50p 원서 번역본 전부다 오류.
    첫번째 문단 마지막 줄
    ECMAScript에서는 숫자를 0으로 나누면 NaN을 반환하고 나머지 처리는 계속 수행합니다.

    NaN 이 아니라 Infinity 입니다.

    원서 저자도 실력이 없는듯…

    1. insight Post author

      숫자를 0으로 나누면 Infinity가 반환되는 게 맞습니다. 이걸 못보고 지나간 건 역자의 실수라는 회신이 있었습니다.

  10. 김동욱

    p56

    이 프로퍼티는 숫자 문자열에 포함된 16비트 문자의 개수를 반환합니다. 문자열
    에 바이트문자가들어 있다면 length 프로퍼티가문자열 길이를정확히 반환하
    지못할수도있습니다.

    –> 이거 아무리 읽어봐도 이상하지 않아요? 물론 원서에도 double byte 인 캐릭터 개수가 있으면 정확하게 못 셀수도 있다고 표현했는데.. double byte면 16비트인데 그러면 자바스크립트 표준 문자열 바이트개수인데 그걸 정확하게 못세면… 표준 문자를 정확히 못센다는게 되는건데 말이 안됨.. 이 원서 저자 유명한 사람 맞아요? 님 한빛미디어 자바스크립트를 말하다 번역자시기도 하시면 저 알아보실테고.. 알죠? 그 책 16장인가 17장인가에서 제가 지적한 부분때문에 세션하나 통째로 오역되가지고 전체 세션 다시 번역하셨잖아요.. 책 번역하실때 신경좀 쓰시길.. 아무리 원서 저자가 그리 썼다지만.. 논리적으로 맞지않으면 주석으로 본인 의견을 투영하는게 읽는 독자들에게 도움이 많이 될텐데…

    1. insight Post author

      안녕하세요.
      위 두 지적은 역자께 말씀드려 확인하고 답신 드리겠습니다.

      그리고, 이메일을 알려주실 수 있으세요? 굉장히 꼼꼼히 책을 보시는 분이니 저희가 연락할 일이 있을 수 있어 요청드리는 겁니다.
      insight 골뱅이 insightbook.co.kr로 이메일 주시면 감사하겠습니다.

    2. insight Post author

      ” ‘2바이트 문자를 정확히 세지 못할 수 있다’가 틀린 것 아니냐는 질문에 명백하게 답변하려면 실제로 length가 잘못된 값을 반환하는 케이스를 찾아야 하는데 역자의 능력 밖”이라는 회신이었습니다.
      또 “김동욱 님의 지적이 정확한지는 모르겠습니다. 다만 현재 사실상 표준인 UTF-8이 3바이트이므로 유니코드 문자에서 일부 그런 일이 일어나지 않을까 싶기는 합니다. 따라서 역주를 달아서 의견을 내 는게 맞지 않냐는 주장은 위와 같은 이유로 어렵겠다”는 회신이었습니다.

      혹시 이 글을 읽는 독자분들 중
      “실제로 length가 잘못된 값을 반환하는 케이스를 찾아” 얘기해 주실 수 있는 분이 계실까요?

      ps. 한빛미디어에 확인한 결과 < 자바스크립트를 말하다(Speaking JavaScript)>는 중쇄를 아직 찍지 못했다고 하네요.

    3. 석대진

      제가 원서가 없어 정확한 확인은 힘들지만, double byte는 파일의 인코딩이 utf8이 아닌 euc_kr와 같이 비유니코드로 저장할 때 발생합니다.

      따라서 아래의 코드를 utf8로 저장하면 3이 나오지만 euc_kr(cp949)와 같이 비유니코 등으로 저장하면 4로 나옵니다.

      var test = “김동욱”;
      console.log(test.length);

      utf8이 활성화되기 이전 자바스크립트 처리할 때 익히 알려진 귀찮은 문제입니다.

      동욱님의 꼼꼼함에 감탄과 찬사를 보내지만, ‘니콜라스 자카스’아저씨를 실력이 없다고 하시는 것은 전 세계 99% 자바스크립트 개발자를 실력 없는 것으로 만든다고 생각합니다.

      오역이나 실수는 고치면 되지만, 상대방을 폄하는 글은 보기가 좋지 않네요.

    4. 석대진

      자바스크립트를 말하다(Speaking JavaScript)에는 오·탈자에 전체 세션이 등록된 것이 안 보이던데, 김동욱님이 지적한 오·탈자가 다 등록되어 있는지 궁금하네요. ( 여기 한빛 아니죠 ^^; )

  11. 차형철

    105 페이지 첫 번째 예제 바로 아래 문단

    ‘첫 번째 함수는 매개변수에 100을 더하고 첫 번째 함수는 200을 더합니다’
    ->’첫 번째 함수는 매개변수에 100을 더하고 두 번째 함수는 200을 더합니다’

    이게 혹시 아닐런지요… 수고하세용 😀

    1. insight Post author

      지적이 맞습니다.
      정오표에 등록하고, 추후 재쇄를 할 때 반영하겠습니다.
      감사합니다.

  12. 이현지

    87쪽 맨 윗줄
    곱셈 후 할당/(*=) 라고 슬래쉬(/)가 들어갔네요.
    별건 아니지만ㅋ

    곱셈 후 할당 (*=) 라고 바꿔주세요~

    1. insight Post author

      이 역시 지적이 맞습니다. 오타가 들어갔네요.
      정오표에 등록하고, 추후 재쇄를 할 때 반영하겠습니다.
      감사합니다.

  13. 차형철

    116페이지

    ‘전역 컨텍스트나 swapColors()의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다. 하지만 swapColors()에서는 부모인 다른 두 컨텍스트의 변수에 자유로이 접근할 수 있습니다.’

    -> ‘전역 컨텍스트나 changeColor()의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다. 하지만 swapColors()에서는 부모인 다른 두 컨텍스트의 변수에 자유로이 접근할 수 있습니다.’

    tempColor는 전역 컨텍스트에서 접근할 수 없고, swapColors() 로컬 컨텍스트에서는 접근 가능한 것이 아닐런지요… 수고하세요! 🙂

    1. insight Post author

      지적 감사합니다.
      역자에게 위 내용을 확인한 결과, 아래와 같이 실수를 하셨다고 회신을 주셨습니다.
      정오표에 반영하고, 추후 재쇄에서 반영토록 하겠습니다.
      —-
      전역 컨텍스트나 swapColors()의 로컬 컨텍스트에서는 tempColor에 접근할 수 있습니다.

      -> 전역 컨텍스트나 swapColors()의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다.

      있습니다 가 아니라 없습니다 입니다. 제 실수였던 것 같습니다.

  14. 차형철

    142페이지
    ‘unshift()와 pop()을 조합하면 큐의 반대, 즉 다음과 같이 배열 마지막에 데이터를 추가하고 앞에서 꺼내는 방식을 쓸 수 있습니다.’
    -> ‘unshift()와 pop()을 조합하면 큐의 반대, 즉 다음과 같이 배열 마지막에 데이터를 제거하고 앞에서 추가하는 방식을 쓸 수 있습니다.’

    바로 아래 예제
    ‘var item = colors.pop(); // 첫 번째 데이터 꺼냄’
    -> ‘var item = colors.pop(); // 마지막 데이터 꺼냄’

    1. 한선용

      142페이지
      ‘unshift()와 pop()을 조합하면 큐의 반대, 즉 다음과 같이 배열 마지막에 데이터를 추가하고 앞에서 꺼내는 방식을 쓸 수 있습니다.’
      -> ‘unshift()와 pop()을 조합하면 큐의 반대, 즉 다음과 같이 배열 처음에 데이터를 추가하고 뒤에서부터 제거하는 방식을 쓸 수 있습니다.’

      바로 아래 예제
      ‘var item = colors.pop(); // 첫 번째 데이터 꺼냄’
      -> ‘var item = colors.pop(); // 마지막 데이터 꺼냄’

      지적 감사합니다

  15. 차형철

    154 페이지 하단 주석

    ‘Univeral’ -> ‘Universal’

    1. june Post author

      안녕하세요. 차형철 님.
      위 세 지적은 역자님께 말씀드려 확인한 후 정오표에 반영토록 하겠습니다.
      감사합니다.

  16. 차형철

    161페이지 중간 예제
    /*
    * pattern1과 같지만 생성자를 쓰지는 않음
    */

    ->

    /*
    * pattern1과 같지만 생성자를 써서 표현함
    */

    or

    /*
    * pattern1과 같지만 pattern1에서는 생성자를 쓰지는 않음
    */

    1. 한선용

      161페이지 중간 예제
      /*
      * pattern1과 같지만 생성자를 쓰지는 않음
      */

      ->

      /*
      * pattern1과 같지만 생성자를 사용함
      */

      지적 감사합니다

  17. 차형철

    116페이지

    제가 바로 윗 줄 글까지 적었어야 했는데 죄송합니다. 정오표에서 2쇄까지 ‘없습니다’라고 바뀐 건 확인했는데요. 포인트가 swapColors()가 아니라 changeColor()여야 문장이 맞는 것 같아서 여쭤봤습니다.

    ‘swapColors()의 로컬 컨텍스트에 있는 tempColor 변수는 오직 이 컨텍스트에서만 접근할 수 있습니다. 전역 컨텍스트나 swapColors()의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다. 하지만 swapColors()에서는 부모인 다른 두 컨텍스트의 변수에 자유로이 접근할 수 있습니다.’

    -> ‘swapColors()의 로컬 컨텍스트에 있는 tempColor 변수는 오직 이 컨텍스트에서만 접근할 수 있습니다. 전역 컨텍스트나 changeColor()의 로컬 컨텍스트에서는 tempColor에 접근할 수 없습니다. 하지만 swapColors()에서는 부모인 다른 두 컨텍스트의 변수에 자유로이 접근할 수 있습니다.’

    1. 한선용

      지적하신 문장의 원문을 다시 한 번 확인한 결과

      Neither the global context nor the local context of
      swapColors() has access to tempColor . Within swapColors() ,
      though, the variables of the other two contexts are fully accessible,
      because they are parent execution contexts.

      로 되어 있지만, 정오표를 다시 확인한 결과

      “Neither the global context nor the local context of changeColor() has access to tempColor.”

      로 수정된 것을 확인했습니다. 차형철님께서 제안하신대로 수정하겠습니다. 다시 한 번 감사드립니다.

    1. 한선용

      지적 감사합니다.

      //편집자님께:
      167페이지 상단 표 마지막 줄의 rightContext $’
      역시 수정되어야 합니다. 코드가 아닌것처럼 보이는 따옴표가 들어가있는데, 혼란스러우므로 고정폭 문자를 써주십시오. 감사합니다.

  18. 차형철

    183 페이지 첫 번째 줄

    ‘세 번째 행을 실행하는 순간 다른 String 객제가…’
    -> ‘세 번째 행을 실행하는 순간 다른 String 객체가…’

  19. 차형철

    195 페이지 중간 표

    $’ 일치하는 문자열 다음의 텍스트. RegExp.leftContext와 같습니다.
    -> $` 일치하는 문자열 다음의 텍스트. RegExp.leftContext와 같습니다.

    1. 한선용

      지적 감사합니다.

      //편집자님께:
      이 표 역시 167페이지의 표와 마찬가지로 고정폭 문자를 써야 합니다. 차형철님이 지적해 주신 부분은 네번째 줄이고, 세번째 줄도 고정폭 문자를 써야 혼란스럽지 않을 것 같습니다. 감사합니다.

  20. 차형철

    203 페이지 두 번째 줄

    ‘… 해당 컨텍스트와 같은 같은 스코프 체인을…’
    -> ‘… 해당 컨텍스트와 같은 스코프 체인을…’

  21. 차형철

    210 페이지 상단 표

    ‘Math.tan(x) x의 탄젝트를 반환합니다.’
    ->’Math.tan(x) x의 탄젠트를 반환합니다.’

  22. 김동욱

    p 862

    If the indentation argument is a string instead of a number, then the string is used as the indentation
    character for the JSON string instead of a space.

    책->들여쓰기 매개변수에 ((((문자열 대신 숫자)))))를 쓰면 들여쓰기할 때 공백문자 대신 해당 문자열을 사용합니다.

    고침 -> 숫자 대신 문자열

  23. 백창현

    329쪽 마지막 단락

    ‘어떤 웹 브라우저를 사용 증인지’
    -> ‘어떤 웹 브라우저를 사용 중인지’

  24. 백창현

    683쪽 아래서 두 번째: “-(줄표)” -> “”(큰따옴표)”

    ‘context.strokeStyle = -#ff0000″‘;
    -> ‘context.strokeStyle = “#ff0000″‘;

  25. 백창현

    1005쪽 세 번째 단락 끝 부분: “염주에” -> “염두에”

    ‘다음 규칙을 염주에 두십시오.’
    -> ‘다음 규칙을 염두에 두십시오.’

Comments are closed.