From d543878d55c71781c7f5b5b088453234437a85b6 Mon Sep 17 00:00:00 2001 From: Jongha Kim Date: Sat, 27 Jul 2024 17:48:53 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[ko]=20Iterator.prototype.toArray()=20?= =?UTF-8?q?=EC=8B=A0=EA=B7=9C=20=EB=B2=88=EC=97=AD=20=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Iterator.prototype.toArray() 신규 번역 - Number.isNaN() 최신 동기화 --- .../global_objects/iterator/toarray/index.md | 64 +++++++++++++++++++ .../global_objects/number/isnan/index.md | 59 ++++++++++------- 2 files changed, 101 insertions(+), 22 deletions(-) create mode 100644 files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md diff --git a/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md b/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md new file mode 100644 index 00000000000000..b73cc65dd5f2d5 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md @@ -0,0 +1,64 @@ +--- +title: Iterator.prototype.toArray() +slug: Web/JavaScript/Reference/Global_Objects/Iterator/toArray +l10n: + sourceCommit: 088b56a895d22b6df854a9f26400af7d399f289f +--- + +{{JSRef}}{{SeeCompatTable}} + +{{jsxref("Iterator")}} 인스턴스의 **`toArray()`** 메서드는 해당 반복자로부터 산출된 요소와 함께 새로운 {{jsxref("Array")}} 인스턴스를 생성합니다. + +## 구문 + +```js-nolint +toArray() +``` + +### 매개변수 + +없음. + +### 반환 값 + +생성된 순서대로 순회자로부터 온 객체를 포함하는 {{jsxref("Array")}} 인스턴스입니다.. + +## 예제 + +### toArray() 사용하기 + +`iterator.toArray()`는 여러 개의 반복자 헬퍼 메서드가 관련된 경우 체인 연결이 더 쉽다는 점을 제외하면 `Array.from(iterator)` 및 '[...iterator]`와 동일합니다. 다음 예제는 피보나치 수열의 항을 산출하는 반복자를 만들고, 처음 10개의 항을 가져와 홀수를 거른 다음 결과를 배열로 변환하는 예제입니다. + +```js +function* fibonacci() { + let current = 1; + let next = 1; + while (true) { + yield current; + [current, next] = [next, current + next]; + } +} + +const array = fibonacci() + .take(10) + .filter((x) => x % 2 === 0) + .toArray(); + +console.log(array); // [2, 8, 34] +``` + +이 처리의 마지막 단계로 `toArray()`를 호출하는 것이 좋습니다. 예를 들어 `fibonacci().take(10).toArray().filter(...)`는 반복자 헬퍼가 느리고 임시 배열을 생성하지 않기 때문에 효율성이 떨어집니다. + +## 명세서 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이 보기 + +- [`core-js`에서의 `Iterator.prototype.toArray` 폴리필](https://github.com/zloirock/core-js#iterator-helpers) +- {{jsxref("Iterator")}} +- {{jsxref("Array.from()")}} diff --git a/files/ko/web/javascript/reference/global_objects/number/isnan/index.md b/files/ko/web/javascript/reference/global_objects/number/isnan/index.md index 226e62df1b02c3..d212d4687a3197 100644 --- a/files/ko/web/javascript/reference/global_objects/number/isnan/index.md +++ b/files/ko/web/javascript/reference/global_objects/number/isnan/index.md @@ -1,69 +1,83 @@ --- title: Number.isNaN() slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN +l10n: + sourceCommit: fb85334ffa4a2c88d209b1074909bee0e0abd57a --- {{JSRef}} -**`Number.isNaN()`** 메서드는 주어진 값이 {{jsxref("NaN")}}인지 판별합니다. 기존부터 존재한 전역 {{jsxref("isNaN", "isNaN()")}} 함수의 더 엄격한 버전입니다. +**`Number.isNaN()`** 정적 메서드는 전달받은 값이 {{jsxref("NaN")}}인지 여부를 결정하고 입력이 Number 유형이 아니라면 `false`를 반환합니다. 이 함수는 원래의 전역 {{jsxref("isNaN()")}} 함수보다 강력합니다. {{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}} ## 구문 -```js -Number.isNaN(value); +```js-nolint +Number.isNaN(value) ``` ### 매개변수 - `value` - - : {{jsxref("NaN")}}인지 판별할 값. + - : The value to be tested for {{jsxref("NaN")}}. ### 반환 값 -주어진 값의 유형이 {{jsxref("Number")}}이고 값이 {{jsxref("NaN")}}이면 `true`, 아니면 `false`. +주어진 숫자가 {{jsxref("NaN")}} 값을 가진다면 `true` 불리언 값을, 그렇지 않다면 `false`를 반환합니다. ## 설명 -{{jsxref("NaN")}}이 `NaN`인지 계산할 때, 두 동일 연산자 `==`과 `===` 모두 `false`로 평가되므로 값의 `NaN` 여부를 알아내려면 `Number.isNaN()`이 필요합니다. 이 상황은 다른 모든 JavaScript와 다른 특별한 경우입니다. +`Number.isNaN()` 함수는 `NaN`과의 동등성을 확인하는 편리한 방법을 제공합니다. JavaScript에서 [`==`](/ko/docs/Web/JavaScript/Reference/Operators/Equality) 또는 [`===`](/ko/docs/Web/JavaScript/Reference/Operators/Strict_equality) 연산자를 사용하여 `NaN`과의 동등성을 시험할 수 없다는 점을 유의하세요. 모든 다른 값 비교와는 달리, 이 연산자는 한 피연산자가 {{jsxref("NaN")}}일 때 항상 `false`로 평가되며, 또 다른 피연산자가 {{jsxref("NaN")}}일 때도 마찬가지입니다. + +JavaScript의 모든 가능한 값 중에서 `x !== x`가 `true`인 경우는 `NaN`뿐이므로, `Number.isNaN(x)`는 `x !== x` 테스트로 대체될 수 있습니다. 다만 후자가 가독성이 떨어진다는 단점이 있습니다. -전역 {{jsxref("isNaN", "isNaN()")}} 함수와 달리, `Number.isNaN()`은 강제로 매개변수를 숫자로 변환하는 문제를 겪지 않습니다. 이는 이제 보통{{jsxref("NaN")}}으로 변환됐을 값이 안전하게 전달되지만, 실제로는 {{jsxref("NaN")}}과 같은 값이 아님을 의미합니다. 이는 또한 오직 숫자형이고 또한 {{jsxref("NaN")}}인 값만이 `true`를 반환함을 뜻합니다. +전역 {{jsxref("isNaN()")}} 함수와는 달리, `Number.isNaN()` 메서드는 매개변수를 강제로 숫자로 변환하지 않습니다. 이로 인해 일반적으로는 {{jsxref("NaN")}}으로 변환되지만 실제로는 {{jsxref("NaN")}}과 같은 값이 아닌 값들을 안전하게 전달할 수 있습니다. 또한 이는 {{jsxref("NaN")}}인 Number 타입의 값만이 `true`를 반환한다는 것을 의미합니다. ## 예제 +### isNaN() 사용하기 + ```js Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0); // true +Number.isNaN(37); // false +``` + +### Number.isNaN() 과 전역 isNaN()과의 차이점 -// 예를 들면 이들은 global isNaN()으로는 true가 됐을 것임 -Number.isNaN("NaN"); // false -Number.isNaN(undefined); // false -Number.isNaN({}); // false -Number.isNaN("blabla"); // false +`Number.isNaN()`은 매개변수를 숫자로 변환하려는 시도를 하지 않아서 숫자가 아니면 언제나 `false`를 반환합니다. 아래 코드는 모두 `false`입니다. -// 모두 +```js +Number.isNaN("NaN"); +Number.isNaN(undefined); +Number.isNaN({}); +Number.isNaN("blabla"); Number.isNaN(true); Number.isNaN(null); -Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" "); ``` -## 폴리필 +전역 {{jsxref("isNaN()")}}은 매개변수를 숫자로 강제로 변환시킵니다. ```js -Number.isNaN = - Number.isNaN || - function (value) { - return value !== value; - }; +isNaN("NaN"); // true +isNaN(undefined); // true +isNaN({}); // true +isNaN("blabla"); // true +isNaN(true); // false, 1로 강제 변환됩니다 +isNaN(null); // false, 0으로 강제 변환됩니다 +isNaN("37"); // false, 37로 강제 변환됩니다 +isNaN("37.37"); // false, 37.37로 강제 변환됩니다 +isNaN(""); // false, 0으로 강제 변환됩니다 +isNaN(" "); // false, 0으로 강제 변환됩니다 ``` -## 명세 +## 명세서 {{Specifications}} @@ -73,5 +87,6 @@ Number.isNaN = ## 같이 보기 +- [`core-js`에서의 `Number.isNaN` 폴리필](https://github.com/zloirock/core-js#ecmascript-number) - {{jsxref("Number")}} -- {{jsxref("isNaN", "isNaN()")}} +- {{jsxref("isNaN()")}} From d9c865f60b5b45e76762966e8fece447dada97d1 Mon Sep 17 00:00:00 2001 From: Jongha Kim Date: Tue, 30 Jul 2024 22:34:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=A6=AC=EB=B7=B0=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/iterator/toarray/index.md | 2 +- .../javascript/reference/global_objects/number/isnan/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md b/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md index b73cc65dd5f2d5..bd46f1a720c3d8 100644 --- a/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md +++ b/files/ko/web/javascript/reference/global_objects/iterator/toarray/index.md @@ -21,7 +21,7 @@ toArray() ### 반환 값 -생성된 순서대로 순회자로부터 온 객체를 포함하는 {{jsxref("Array")}} 인스턴스입니다.. +생성된 순서대로 반복자로부터 온 객체를 포함하는 {{jsxref("Array")}} 인스턴스입니다. ## 예제 diff --git a/files/ko/web/javascript/reference/global_objects/number/isnan/index.md b/files/ko/web/javascript/reference/global_objects/number/isnan/index.md index d212d4687a3197..78053e95da8025 100644 --- a/files/ko/web/javascript/reference/global_objects/number/isnan/index.md +++ b/files/ko/web/javascript/reference/global_objects/number/isnan/index.md @@ -20,7 +20,7 @@ Number.isNaN(value) ### 매개변수 - `value` - - : The value to be tested for {{jsxref("NaN")}}. + - : {{jsxref("NaN")}} 일지 검증할 값. ### 반환 값