Skip to content

Commit b2a79b1

Browse files
committed
C10 apply review feedback
1 parent 6ed6fd7 commit b2a79b1

4 files changed

Lines changed: 23 additions & 24 deletions

File tree

1-js/05-data-types/03-string/1-ucfirst/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ function ucFirst(str) {
1818
}
1919

2020
alert( ucFirst("john") ); // John
21-
```
21+
```

1-js/05-data-types/03-string/3-truncate/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ function truncate(str, maxlength) {
77
return (str.length > maxlength) ?
88
str.slice(0, maxlength - 1) + '' : str;
99
}
10-
```
10+
```

1-js/05-data-types/03-string/article.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ let guestList = "손님: // Error: Invalid or unexpected token
5050

5151
작은따옴표나 큰따옴표로 문자열을 표현하는 방식은 자바스크립트가 만들어졌을 때부터 있었습니다. 이때는 문자열을 여러 줄에 걸쳐 작성할 생각조차 못 했던 시기였죠. 백틱은 그 이후에 등장한 문법이기 때문에 따옴표보다 다양한 기능을 제공합니다.
5252

53-
백틱은 '템플릿 함수(template function)'에서도 사용됩니다. <code>func&#96;string&#96;</code> 같이 첫 번째 백틱 바로 앞에 함수 이름(`func`)을 써주면, 이 함수는 백틱 안의 문자열 조각이나 표현식 평가 결과를 인수로 받아 자동으로 호출됩니다. 이런 기능을 '태그드 템플릿(tagged template)'이라 부르는데, 태그드 템플릿을 사용하면 사용자 지정 템플릿에 맞는 문자열을 쉽게 만들 수 있습니다. 태그드 템플릿과 템플릿 함수에 대한 자세한 내용은 MDN [문서](mdn:/JavaScript/Reference/Template_literals#Tagged_templates)에서 확인해보세요. 참고로 이 기능은 자주 사용되진 않습니다.
53+
백틱은 '템플릿 함수(template function)'에서도 사용됩니다. <code>func&#96;string&#96;</code> 같이 첫 번째 백틱 바로 앞에 함수 이름(`func`)을 써주면, 이 함수는 백틱 안의 문자열 조각이나 표현식 평가 결과를 인수로 받아 자동으로 호출됩니다. 이런 기능을 '태그드 템플릿(tagged template)'이라 부릅니다. 태그드 템플릿과 템플릿 함수에 대한 자세한 내용은 [템플릿 리터럴](mdn:/JavaScript/Reference/Template_literals#Tagged_templates)에서 확인해보세요. 참고로 이 기능은 자주 사용되진 않습니다.
5454

5555
## 특수 기호
5656

@@ -74,14 +74,14 @@ World`;
7474
alert(str1 == str2); // true
7575
```
7676

77-
자바스크립트엔 줄 바꿈 문자를 비롯한 다양한 '특수' 문자들이 있습니다.
77+
자바스크립트엔 줄 바꿈 문자를 비롯한 다양한 특수 문자들이 있습니다.
7878

7979
특수 문자 목록:
8080

8181
| 특수 문자 | 설명 |
8282
|-----------|-------------|
8383
|`\n`|줄 바꿈|
84-
|`\r`|캐리지 리턴(carriage return). Windows에선 캐리지 리턴과 줄 바꿈 특수 문자를 조합(`\r\n`)해 줄을 바꿉니다. 반면 Windows가 아닌 운영체제에서 단순히 `\n`만 사용합니다. 이는 역사적인 이유 때문이며, 대부분의 Windows 소프트웨어는 `\n`을 이해합니다. |
84+
|`\r`|캐리지 리턴(carriage return). Windows에선 캐리지 리턴과 줄 바꿈 특수 문자를 조합(`\r\n`)해 줄을 바꿉니다. 반면 Windows가 아닌 운영체제에서 단순히 `줄 바꿈(\n)`만 사용합니다. 이는 역사적인 이유 때문이며, 대부분의 Windows 소프트웨어는 `줄 바꿈(\n)`을 이해합니다. |
8585
|`\'`, `\"`|따옴표|
8686
|`\\`|역슬래시|
8787
|`\t`||
@@ -95,7 +95,7 @@ alert(str1 == str2); // true
9595
alert( `The backslash: \\` ); // 역슬래시: \
9696
```
9797

98-
따옴표를 이스케이프한 `\'`, `\"`, <code>\\`</code>는 동일한 종류의 따옴표로 감싼 문자열 안에 따옴표를 넣을 때 사용됩니다.
98+
따옴표를 '이스케이프'한 `\'`, `\"`, <code>\\`</code>는 동일한 종류의 따옴표로 감싼 문자열 안에 따옴표를 넣을 때 사용됩니다.
9999

100100
예시:
101101

@@ -111,7 +111,7 @@ alert( 'I*!*\'*/!*m the Walrus!' ); // *!*I'm*/!* the Walrus!
111111
alert( "I'm the Walrus!" ); // I'm the Walrus!
112112
```
113113

114-
이러한 특수 문자 외에도 유니코드 코드를 나타내는 특별한 표기법 `\u...`가 있습니다. 자주 사용되지는 않으며, [유니코드](info:unicode) 선택 챕터에서 다루겠습니다.
114+
이러한 특수 문자 외에도 유니코드 코드를 나타내는 특별한 표기법 `\u`가 있습니다. 자주 사용되지는 않으며, [유니코드](info:unicode) 선택 챕터에서 다루겠습니다.
115115

116116
## 문자열의 길이
117117

@@ -145,7 +145,7 @@ alert( str[str.length - 1] ); // o
145145
alert( str.at(-1) );
146146
```
147147

148-
보시다시피 `.at(pos)` 메서드는 음수 위치를 사용할 수 있다는 장점이 있습니다. `pos`가 음수이면 문자열의 끝에서부터 위치를 계산합니다.
148+
보시다시피 `.at(pos)` 메서드는 `pos`에 음수를 전달해 사용할 수 있다는 장점이 있습니다. `pos`가 음수이면 문자열의 끝에서부터 위치를 계산합니다.
149149

150150
따라서 `.at(-1)`은 마지막 문자를 의미하고, `.at(-2)`는 마지막에서 두 번째 문자를 의미하는 식입니다.
151151

@@ -155,7 +155,7 @@ alert( str.at(-1) );
155155
let str = `Hello`;
156156

157157
alert( str[-2] ); // undefined
158-
alert( str.at(-2) ); // 1
158+
alert( str.at(-2) ); // l
159159
```
160160

161161
`for..of`를 사용하면 문자열을 구성하는 글자를 대상으로 반복 작업을 할 수 있습니다.
@@ -439,7 +439,7 @@ alert( "Wid*!*get*/!*".endsWith("get") ); // true, "Widget"은 "get"으로 끝
439439
코드로 글자를 얻거나 글자에서 연관 코드를 알아낼 수 있는 메서드는 다음과 같습니다.
440440

441441
`str.codePointAt(pos)`
442-
: `pos`에 위치한 글자의 코드를 반환합니다.
442+
: `pos`에 위치한 글자의 코드를 나타내는 10진수 값을 반환합니다.
443443

444444
```js run
445445
// 글자는 같지만 케이스는 다르므로 반환되는 코드가 다릅니다.
@@ -479,7 +479,7 @@ alert( str );
479479
- 알파벳 소문자의 코드는 대문자의 코드보다 크므로 소문자는 대문자 뒤에 옵니다.
480480
- `Ö` 같은 글자는 일반 알파벳과 멀리 떨어져 있습니다. `Ö`의 코드는 알파벳 소문자의 코드보다 훨씬 큽니다.
481481
482-
### 문자열 제대로 비교하기[#correct-comparisons]
482+
### 문자열 제대로 비교하기 [#correct-comparisons]
483483
484484
언어마다 문자 체계가 다르기 때문에 문자열을 '제대로' 비교하는 알고리즘을 만드는 건 생각보다 간단하지 않습니다.
485485
@@ -501,14 +501,13 @@ ECMA-402엔 언어가 다를 때 적용할 수 있는 문자열 비교 규칙과
501501
alert( 'Österreich'.localeCompare('Zealand') ); // -1
502502
```
503503
504-
`localeCompare`엔 선택 인수 두 개를 더 전달할 수 있습니다. 기준이 되는 언어를 지정(아무것도 지정하지 않았으면 호스트 환경의 언어가 기준 언어가 됨)해 주는 인수와 대·소문자를 구분할지나 `"a"``""`를 다르게 취급할지 같은 추가 규칙도 설정할 수 있습니다.
504+
`localeCompare`엔 선택 인수 두 개를 더 전달할 수 있습니다. 기준이 되는 언어를 지정(아무것도 지정하지 않았으면 호스트 환경의 언어가 기준 언어가 됨)해 주는 인수와 대·소문자를 구분할지나 `"a"``""`를 다르게 취급할지에 대한 것을 설정해 주는 인수가 더 있죠. 자세한 사항은 관련 [페이지](mdn:js/String/localeCompare)에서 확인해 보시기 바랍니다.
505505
506506
## 요약
507507
508508
- 자바스크립트엔 세 종류의 따옴표가 있는데, 이 중 하나인 백틱은 문자열을 여러 줄에 걸쳐 쓸 수 있게 해주고 문자열 중간에 `${…}`을 사용해 표현식도 넣을 수 있다는 점이 특징입니다.
509-
- 자바스크립트에선 UTF-16을 사용해 문자열을 인코딩합니다.
510-
- `\n` 같은 특수 문자를 사용할 수 있습니다. `\u...`를 사용하면 해당 문자의 유니코드를 사용해 글자를 만들 수 있습니다.
511-
- 문자열 내의 글자 하나를 얻으려면 대괄호 `[]`를 사용하세요.
509+
- `\n` 같은 특수 문자를 사용할 수 있습니다.
510+
- 문자열 내의 글자 하나를 얻으려면 대괄호 `[]``at` 메서드를 사용하세요.
512511
- 부분 문자열을 얻으려면 `slice``substring`을 사용하세요.
513512
- 소문자로 바꾸려면 `toLowerCase`, 대문자로 바꾸려면 `toUpperCase`를 사용하세요.
514513
- `indexOf`를 사용하면 부분 문자열의 위치를 얻을 수 있습니다. 부분 문자열 여부만 알고 싶다면 `includes/startsWith/endsWith`를 사용하면 됩니다.

1-js/05-data-types/04-array/article.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ alert( arr[0] ); // undefined가 출력됩니다. 요소가 하나도 없는 배
413413
alert( arr.length ); // 길이는 2입니다.
414414
```
415415

416-
위 예시에서 확인해 본 것처럼 `new Array(number)`를 이용해 만든 배열의 요소는 모두 `undefined` 입니다. 이런 뜻밖의 상황을 마주치지 않기 위해 `new Array`의 기능을 잘 알지 않는 한 대부분의 개발자가 대괄호를 써서 배열을 만듭니다.
416+
이런 뜻밖의 상황을 마주치지 않기 위해 `new Array`의 기능을 잘 알지 않는 한 대부분의 개발자가 대괄호를 써서 배열을 만듭니다.
417417

418418
## 다차원 배열
419419

@@ -426,7 +426,7 @@ let matrix = [
426426
[7, 8, 9]
427427
];
428428

429-
alert( matrix[0][1] ); // 2, 첫 번째 내부 배열의 두번째
429+
alert( matrix[0][1] ); // 2, 첫 번째 내부 배열의 두 번째
430430
```
431431

432432
## toString
@@ -463,23 +463,23 @@ alert( "1,2" + 1 ); // "1,21"
463463

464464
## ==로 배열을 비교하지 마세요
465465

466-
자바스크립트에서 배열은 다른 몇몇 프로그래밍 언어와 달리 ==연산자로 비교하면 안 됩니다.
466+
자바스크립트에서 배열은 다른 몇몇 프로그래밍 언어와 달리 `동등 연산자(==)` 비교하면 안 됩니다.
467467

468-
==연산자는 배열을 특별하게 취급하지 않습니다. 배열도 일반 객체처럼 처리됩니다.
468+
`==` 배열을 특별하게 취급하지 않습니다. 배열도 일반 객체처럼 처리됩니다.
469469

470470
규칙을 다시 떠올려 봅시다.
471471
- 두 객체는 동일한 객체를 참조할 때만 `==` 비교 결과가 `true`입니다.
472-
- `==`의 피연산자 중 하나가 객체이고 다른 하나가 primitive 자료형이면, <info:object-toprimitive> 챕터에서 설명한 것처럼 객체가 원시값으로 변환됩니다.
473-
- 단, `null``undefined`예외로 서로끼리만 `==` 비교 시 같고, 다른 값과는 같지 않습니다.
472+
- `==`의 피연산자 중 하나가 객체이고 다른 하나가 원시값이면, <info:object-toprimitive> 챕터에서 설명한 것처럼 객체가 원시값으로 변환됩니다.
473+
- 단, `null``undefined`예외입니다. 서로에 대해서만 `==` 비교 시 `true`를 반환하고 그 외의 값과 비교했을 때는 `false`를 반환합니다.
474474

475475
엄격한 비교 연산자 `===`는 더 단순합니다. 타입 변환을 수행하지 않기 때문입니다.
476476

477-
따라서 배열을 `==`로 비교하면, 정확히 같은 배열을 참조하는 두 변수를 비교하는 경우가 아니라면 항상 서로 다르다고 판단됩니다.
477+
따라서 정확히 같은 배열을 참조하는 두 변수를 비교하는 경우가 아니라면, 배열을 `==`로 비교했을 때 두 배열은 절대 같지 않습니다.
478478

479479
예시:
480480
```js run
481-
alert( [] == [] ); //false
482-
alert( [0] == [0] ); //false
481+
alert( [] == [] ); // false
482+
alert( [0] == [0] ); // false
483483
```
484484

485485
위 배열들은 엄밀히 말하면 서로 다른 객체입니다. 따라서 같지 않습니다. `==` 연산자는 배열 요소를 하나씩 비교하지 않습니다.

0 commit comments

Comments
 (0)