Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Draft] Add Numeric separators and Bigint to 2.2 Number type section #56

Conversation

jiwonkirn
Copy link
Collaborator

@jiwonkirn jiwonkirn commented Feb 21, 2021

ES2021 Numeric separators, ES2020 BigInt 를 2.2 number 타입에 추가합니다.

PR Point

  1. 두 스펙을 설명할 때 ES2020, ES2021이라는 단어가 나오는데 독자가 이것을 인지하기에 적절한 위치인지 검토가 필요합니다.
    • 1.3 JavaScript 소개 섹션에서 소개되긴 했습니다.
  2. 1번과 비슷한 이유로 특정 브라우저에서만 지원한다는 문구 외에 Babel이나 TypeScript 등 트랜스파일러를 언급해도 되는 시기인지 검토가 필요합니다.
    • 역시 1.3 JavaScript 소개 섹션에서 소개되긴 했습니다.
  3. 부동 소수점이나 반올림 이슈, BigInt 등은 따로 섹션을 만들어서 그림과 함께 자세히 설명할 수도 있을 것 같습니다. 추후 만들어지는 시점에 해당 내용들을 포함시키는 것도 방법일 것 같습니다. (메모리에 숫자가 어떻게 저장되는지, 그러면 BigInt는 어떻게 처리하는지 등)

@jiwonkirn jiwonkirn changed the title Add Numeric separators and Bigint to 2.2 number type section [Draft] Add Numeric separators and Bigint to 2.2 number type section Feb 21, 2021
@jiwonkirn jiwonkirn changed the title [Draft] Add Numeric separators and Bigint to 2.2 number type section [Draft] Add Numeric separators and Bigint to 2.2 Number type section Feb 21, 2021
@seungha-kim seungha-kim marked this pull request as draft February 28, 2021 02:50
Copy link
Collaborator

@seungha-kim seungha-kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

두 스펙을 설명할 때 ES2020, ES2021이라는 단어가 나오는데 독자가 이것을 인지하기에 적절한 위치인지 검토가 필요합니다. 1.3 JavaScript 소개 섹션에서 소개되긴 했습니다.

1번과 비슷한 이유로 특정 브라우저에서만 지원한다는 문구 외에 Babel이나 TypeScript 등 트랜스파일러를 언급해도 되는 시기인지 검토가 필요합니다. 역시 1.3 JavaScript 소개 섹션에서 소개되긴 했습니다.

말씀하신 것처럼 이 교재는 독자가 ECMAScript 버저닝에 대해 어느정도의 사전 지식을 가지고 있다는 가정을 가지고 있었습니다. 다만 앞으로도 그렇게 할 것인가? 에 대해서는 논의가 필요할 것 같네요!

제 생각에 일단은 지원님이 작성해두신 대로 버티다가, 언제 한번 ES 버전 관련된 내용을 몽땅 처리하는 작업을 한꺼번에 하는게 좋을 것도 같습니다. 관련 이슈(#17) 에 댓글 달아두었습니다.

@@ -20,10 +21,22 @@ number 타입 리터럴에는 다음과 같은 것들이 있습니다.
0b1001101 === 77; // true
```

number 타입의 값에 대해 `typeof` 연산을 해보면 `'number'`라는 결과가 나옵니다.
숫자 구분 기호 (Numeric Separators) 역시 프로그래머가 숫자를 가독성있게 읽기 위한 표기법일 뿐, 값은 10진수 형태로 저장됩니다. 달러에서 1000 단위로 구분 기호 `,`를 사용하는 것 처럼 `_`로 구분하는 것이 대표적인 예입니다. 숫자 구분 기호 (Numeric Separators)는 ES2021에 포함된 문법으로 [특정 브라우저 버전](https://caniuse.com/?search=Numeric%20Separators)에서만 사용할 수 있습니다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

값은 10진수 형태로 저장됩니다.

아마도 '표기법은 표기법일 뿐 내부적으로 저장되는 형태는 같다' 는 의미를 전달하기 위해 이렇게 쓰셨을 것 같습니당! 그런데 사실 number 타입의 값은 모두 내부적으로는 2진수로 저장되기 때문에, 이렇게 쓰면 틀린 말이 됩니당 흑흑

윗 문단에서 '2진수, 16진수 정수 리터럴은 표기법일 뿐, 내부적으로는 10진수 정수와 같은 형태로 다루어집니다.' 라고 썼던 것의 의도는 '생긴건 완전히 다르지만 사실 똑같은 숫자임!' 을 말하고 싶었던 것인데, 여기에서는 생긴것이 거의 비슷해서 다른 숫자라고 오해할 일은 없을 듯하니, 요기에서는 '값은 10진수...' 를 생략해도 될 것 같습니다. 그러니까

숫자 구분 기호 (Numeric Separators) 역시 프로그래머가 숫자를 가독성있게 읽기 위한 표기법입니다.

정도로 고치면 어떨까요?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러고보니 윗 문단의

2진수, 16진수 정수 리터럴은 표기법일 뿐, 내부적으로는 10진수 정수와 같은 형태로 다루어집니다.

이것도 오해의 소지가 있네요... '내부적으로는 10진수 정수 리터럴과 같은 형태로' 라고 고치는 게 좋을 것 같은데, 요것은 제가 적절한 타이밍에 고쳐두겠습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

잘못된 정보니 빼는 것이 맞겠네요. ㅎㅎ
콘솔을 찍어보면 10진수로 나온다의 느낌으로 서술했어도 괜찮았을 것 같습니다.

숫자 구분 기호 (Numeric Separators) 역시 프로그래머가 숫자를 가독성있게 읽기 위한 표기법입니다.

제안주신대로 수정했습니다! 리뷰 감사합니다. :)

@@ -20,10 +21,22 @@ number 타입 리터럴에는 다음과 같은 것들이 있습니다.
0b1001101 === 77; // true
```

number 타입의 값에 대해 `typeof` 연산을 해보면 `'number'`라는 결과가 나옵니다.
숫자 구분 기호 (Numeric Separators) 역시 프로그래머가 숫자를 가독성있게 읽기 위한 표기법일 뿐, 값은 10진수 형태로 저장됩니다. 달러에서 1000 단위로 구분 기호 `,`를 사용하는 것 처럼 `_`로 구분하는 것이 대표적인 예입니다. 숫자 구분 기호 (Numeric Separators)는 ES2021에 포함된 문법으로 [특정 브라우저 버전](https://caniuse.com/?search=Numeric%20Separators)에서만 사용할 수 있습니다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

달러에서 1000 단위로 구분 기호 ,를 사용하는 것 처럼 _로 구분하는 것이 대표적인 예입니다.

'대표적인 예' 라고 쓰신 의도가 궁금합니당!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

대표적인 예는 제 주관적으로 생각했을 때 이렇게 많이 쓰지 않을까 해서 만들어진 워딩입니다 ㅎㅎ;
다시 보니 달러 라는 단어도 적절하지 않은 것 같네요.

어차피 아래 예시가 있으니 아예 이 문구를 빼거나 아래처럼 넣으면 어떨까 합니다. :)
(일단은 아래처럼 수정해두었습니다.)

영어권에서 1000 단위로 구분 기호 ,를 사용하는 것 처럼 _를 사용하여 가독성을 높이는 것이 여러 사용 예시 중 하나입니다.

@seungha-kim
Copy link
Collaborator

댓글 달아놓은 것 말고는 모두 좋아보입니당 ❤️❤️❤️

@seungha-kim
Copy link
Collaborator

Fixed #40 , #32

@seungha-kim seungha-kim marked this pull request as ready for review March 14, 2021 14:54
@seungha-kim seungha-kim merged commit f3e5e8f into helloworld-javascript:master Mar 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants