From a47bf6fa55ff731b0bd7111ef0869c41ef84f069 Mon Sep 17 00:00:00 2001 From: Jongha Kim Date: Sat, 6 Jul 2024 16:56:18 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[ko]=20TypedArray.prototype.toString()=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 - TypedArray.prototype.toString() 신규 번역 - Array.prototype.toString() 최신화 --- .../global_objects/array/tostring/index.md | 84 ++++++++++++++++--- .../typedarray/tostring/index.md | 59 +++++++++++++ 2 files changed, 131 insertions(+), 12 deletions(-) create mode 100644 files/ko/web/javascript/reference/global_objects/typedarray/tostring/index.md diff --git a/files/ko/web/javascript/reference/global_objects/array/tostring/index.md b/files/ko/web/javascript/reference/global_objects/array/tostring/index.md index a355b0927b5039..26e547a7d02112 100644 --- a/files/ko/web/javascript/reference/global_objects/array/tostring/index.md +++ b/files/ko/web/javascript/reference/global_objects/array/tostring/index.md @@ -1,40 +1,96 @@ --- title: Array.prototype.toString() slug: Web/JavaScript/Reference/Global_Objects/Array/toString +l10n: + sourceCommit: 5c3c25fd4f2fbd7a5f01727a65c2f70d73f1880a --- {{JSRef}} -**`toString()`** 메서드는 지정된 배열 및 그 요소를 나타내는 문자열을 반환합니다. +{{jsxref("Array")}} 인스턴스의 **`toString()`** 메서드는 지정된 배열 및 그 요소를 나타내는 문자열을 반환합니다. -{{EmbedInteractiveExample("pages/js/array-tostring.html")}} +{{EmbedInteractiveExample("pages/js/array-tostring.html", "shorter")}} ## 구문 -```js -arr.toString(); +```js-nolint +toString() ``` +### 매개변수 + +없음. + ### 반환 값 배열을 표현하는 문자열을 반환합니다. ## 설명 -{{jsxref("Array")}} 객체는 {{jsxref("Object")}}의 `toString` 메서드를 재정의(override)합니다. Array 객체에 대해, `toString` 메서드는 배열을 합쳐(join) 쉼표로 구분된 각 배열 요소를 포함하는 문자열 하나를 반환합니다. 예를 들어, 다음 코드는 배열을 생성하며 그 배열을 문자열로 변환하기 위해 `toString`을 사용합니다. +{{jsxref("Array")}} 객체는 {{jsxref("Object")}}의 `toString` 메서드를 재정의합니다. 배열의 `toString` 메서드는 내부적으로 [`join()`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join)을 호출하여 배열을 조인하고 쉼표로 구분된 각 배열 요소를 포함하는 하나의 문자열을 반환합니다. `join` 메서드를 사용할 수 없거나 함수가 아닌 경우, [`Object.prototype.toString`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)이 대신 사용되며 `[object Array]`를 반환합니다. + +```js +const arr = []; +arr.join = 1; // `join`에 비함수 재할당 +console.log(arr.toString()); // [object Array] + +console.log(Array.prototype.toString.call({ join: () => 1 })); // 1 +``` + +배열이 텍스트 값으로 표현되거나 문자열 연결에서 배열을 참고할 때, JavaScript는 `toString` 메서드를 자동으로 호출합니다. + +`Array.prototype.toString`은 다른 배열을 포함한 각 요소를 재귀적으로 문자열로 변환합니다. `Array.prototype.toString`이 반환하는 문자열에는 구분 기호가 없으므로 중첩 배열은 중첩이 풀려서 보입니다. + +```js +const matrix = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]; + +console.log(matrix.toString()); // 1,2,3,4,5,6,7,8,9 +``` + +배열이 그 자신이 요소의 하나가 되는 순환이 발생할 경우 브라우저는 순환 참조를 무시하여 무한 재귀 참조를 방지합니다. ```js -var monthNames = ["Jan", "Feb", "Mar", "Apr"]; -var myVar = monthNames.toString(); // 'Jan,Feb,Mar,Apr'을 myVar에 할당. +const arr = []; +arr.push(1, [3, arr, 4], 2); +console.log(arr.toString()); // 1,3,,4,2 ``` -JavaScript는 배열이 텍스트 값으로 표현되거나 배열이 문자열 연결(concatenation)에 참조될 때 자동으로 `toString` 메서드를 호출합니다. +## 예제 -### ECMAScript 5 의미 +### toString() 사용하기 -JavaScript 1.8.5 (Firefox 4)부터, ECMAScript 제5판 의미(semantics)와 일치하는 `toString()` 메서드는 일반(generic) 메서드이므로 모든 객체에 사용될 수 있습니다. 객체가 `join()` 메서드가 있는 경우, 호출되어 그 값이 반환됩니다. 그렇지 않으면 {{jsxref("Object.prototype.toString()")}}가 호출되어 그 결과값이 반환됩니다. +```js +const array1 = [1, 2, "a", "1a"]; + +console.log(array1.toString()); // "1,2,a,1a" +``` + +### 희소 배열에서 toString() 사용하기 + +아래 `join()`의 행위처럼 `toString()`은 빈 슬롯을 `undefined`와 동일하게 취급하며, 추가적인 분리자를 만듭니다. + +```js +console.log([1, , 3].toString()); // '1,,3' +``` + +### 배열이 아닌 객체에서 toString() 호출하기 + +`toString()`은 [범용적](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#범용_배열_메서드)입니다. 이 메서드는 `this`가 `join()` 메서드를 가지기를 기대합니다. 그렇지 않다면, `Object.prototype.toString()`을 대신 사용합니다. + +```js +console.log(Array.prototype.toString.call({ join: () => 1 })); +// 1; a number +console.log(Array.prototype.toString.call({ join: () => undefined })); +// undefined +console.log(Array.prototype.toString.call({ join: "not function" })); +// "[object Object]" +``` -## 명세 +## 명세서 {{Specifications}} @@ -44,5 +100,9 @@ JavaScript 1.8.5 (Firefox 4)부터, ECMAScript 제5판 의미(semantics)와 일 ## 같이 보기 +- [인덱스 기반 컬렉션](/ko/docs/Web/JavaScript/Guide/Indexed_collections) 가이드 +- {{jsxref("Array")}} - {{jsxref("Array.prototype.join()")}} -- {{jsxref("Object.prototype.toSource()")}} +- {{jsxref("Array.prototype.toLocaleString()")}} +- {{jsxref("TypedArray.prototype.toString()")}} +- {{jsxref("String.prototype.toString()")}} diff --git a/files/ko/web/javascript/reference/global_objects/typedarray/tostring/index.md b/files/ko/web/javascript/reference/global_objects/typedarray/tostring/index.md new file mode 100644 index 00000000000000..7090bb465d896e --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/typedarray/tostring/index.md @@ -0,0 +1,59 @@ +--- +title: TypedArray.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/TypedArray/toString +l10n: + sourceCommit: c2445ce1dc3a0170e2fbfdbee10e18a7455c2282 +--- + +{{JSRef}} + +{{jsxref("TypedArray")}} 인스턴스의 **`toString()`** 메서드는 명시된 형식화 배열과 배열의 요소를 표현하는 문자열을 반환합니다. 이 메서드는 {{jsxref("Array.prototype.toString()")}}과 같은 알고리즘을 가집니다. + +{{EmbedInteractiveExample("pages/js/typedarray-tostring.html", "shorter")}} + +## 구문 + +```js-nolint +toString() +``` + +### 매개변수 + +없음. + +### 반환 값 + +해당 형식화 배열을 표현하는 문자열. + +## 설명 + +좀 더 많은 정보는 {{jsxref("Array.prototype.toString()")}}을 참고하시기 바랍니다. 이 메서드는 범용적이지 않으며, 형식화 배열 인스턴스에서만 호출됩니다. + +## 예제 + +### 형식화 배열을 문자열로 변환하기 + +```js +const uint8 = new Uint8Array([1, 2, 3]); +// 명시적 변환 +console.log(uint8.toString()); // 1,2,3 +// 암시적 변환 +console.log(`${uint8}`); // 1,2,3 +``` + +## 명세서 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이 보기 + +- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 가이드 +- {{jsxref("TypedArray")}} +- {{jsxref("TypedArray.prototype.join()")}} +- {{jsxref("TypedArray.prototype.toLocaleString()")}} +- {{jsxref("Array.prototype.toString()")}} +- {{jsxref("String.prototype.toString()")}} From 64ba7e0d4a3b234570a669da176380d21ca7aeb5 Mon Sep 17 00:00:00 2001 From: Jongha Kim Date: Fri, 2 Aug 2024 08:07:03 +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/array/tostring/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/files/ko/web/javascript/reference/global_objects/array/tostring/index.md b/files/ko/web/javascript/reference/global_objects/array/tostring/index.md index 26e547a7d02112..a811c8dcd7d21f 100644 --- a/files/ko/web/javascript/reference/global_objects/array/tostring/index.md +++ b/files/ko/web/javascript/reference/global_objects/array/tostring/index.md @@ -7,7 +7,8 @@ l10n: {{JSRef}} -{{jsxref("Array")}} 인스턴스의 **`toString()`** 메서드는 지정된 배열 및 그 요소를 나타내는 문자열을 반환합니다. +{{jsxref("Array")}} 인스턴스의 **`toString()`** 메서드는 +지정된 배열 및 그 요소를 나타내는 문자열을 반환합니다. {{EmbedInteractiveExample("pages/js/array-tostring.html", "shorter")}} @@ -83,7 +84,7 @@ console.log([1, , 3].toString()); // '1,,3' ```js console.log(Array.prototype.toString.call({ join: () => 1 })); -// 1; a number +// 1; 숫자 타입 console.log(Array.prototype.toString.call({ join: () => undefined })); // undefined console.log(Array.prototype.toString.call({ join: "not function" }));