Skip to content

Commit

Permalink
[ko] TypedArray.from() 신규 번역 외 (mdn#22330)
Browse files Browse the repository at this point in the history
* [ko] TypedArray.from() 신규 번역 외

- TypedArray.from() 신규 번역
- TypedArray.prototype.length 최신화

* Update files/ko/web/javascript/reference/global_objects/typedarray/from/index.md

---------

Co-authored-by: hochan Lee <[email protected]>
  • Loading branch information
2 people authored and ikenk committed Oct 31, 2024
1 parent 9563f6f commit 335216f
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---
title: TypedArray.from()
slug: Web/JavaScript/Reference/Global_Objects/TypedArray/from
l10n:
sourceCommit: fb442649a7e91a177a582a3e9c6e1a95a9e8dda5
---

{{JSRef}}

**`TypedArray.from()`** 정적 메서드는 순회 가능한 객체 혹은 유사 배열로부터 새로운 [형식화 배열](/ko/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#typedarray_objects)을 생성합니다. 이 메서드는 {{jsxref("Array.from()")}}와 거의 같습니다.

{{EmbedInteractiveExample("pages/js/typedarray-from.html", "shorter")}}

## 구문

```js-nolint
TypedArray.from(arrayLike, mapFn)
TypedArray.from(arrayLike, mapFn, thisArg)
```

`TypedArray`는 아래 중 하나입니다.

- {{jsxref("Int8Array")}}
- {{jsxref("Uint8Array")}}
- {{jsxref("Uint8ClampedArray")}}
- {{jsxref("Int16Array")}}
- {{jsxref("Uint16Array")}}
- {{jsxref("Int32Array")}}
- {{jsxref("Uint32Array")}}
- {{jsxref("Float16Array")}}
- {{jsxref("Float32Array")}}
- {{jsxref("Float64Array")}}
- {{jsxref("BigInt64Array")}}
- {{jsxref("BigUint64Array")}}

### 매개변수

- `arrayLike`
- : 형식화 배열로 변환할 순회 가능한 객체 혹은 유사 객체.
- `mapFn` {{optional_inline}}
- : 입력된 배열의 모든 요소에 대해 호출할 함수입니다. 이 함수를 제공하면 배열에 추가할 모든 값이 먼저 이 함수를 통과하고 `mapFn`의 반환 값이 형식화 배열에 입력 값 대신 추가됩니다. 이 함수는 다음 인수를 사용하여 호출됩니다.
- `element`
- : 형식화 배열에서 처리 중인 현재 요소입니다.
- `index`
- : 형식화 배열에서 처리 중인 현재 요소의 인덱스입니다.
- `thisArg` {{optional_inline}}
- : `mapFn`을 실행할 때 `this`로 사용할 값입니다.

### 반환 값

새로운 {{jsxref("TypedArray")}} 인스턴스입니다.

## 설명

자세한 내용은 {{jsxref("Array.from()")}}을 참고하시기 바랍니다.

{{jsxref("Array.from()")}}와 `TypedArray.from()` 사이에는 미묘한 차이가 있습니다(참고: 아래에 언급된 `this` 값은 `mapFn`을 호출하는 데 사용된 `thisArg` 인수가 아니라 `TypedArray.from()`가 호출된 `this` 값입니다).

- `TypedArray.from()``this` 값이 생성자가 아닌 경우, `TypedArray.from()`는 {{jsxref("TypeError")}}를 발생시키고, `Array.from()`는 기본적으로 새 {{jsxref("Array")}}를 생성합니다.
- `this`가 생성하는 객체는 `TypedArray` 인스턴스여야 하며, `Array.from()``this` 값을 어떤 객체로든 생성할 수 있습니다.
- `source` 매개변수가 반복자인 경우 `TypedArray.from()`은 먼저 반복자에서 모든 값을 수집한 다음 그 개수를 사용하여 `this`의 인스턴스를 생성하고 마지막으로 인스턴스에 값을 설정합니다. `Array.from()`은 반복자로부터 값을 받을 때마다 각 값을 설정한 다음 마지막에 `length`를 설정합니다.
- `TypedArray.from()``[[Set]]`을 사용하는 반면 `Array.from()``[[DefineOwnProperty]]`을 사용합니다. 따라서 {{jsxref("Proxy")}} 객체로 작업할 때는 [`handler.set()`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set) 대신 [`handler.defineProperty()`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty)를 호출하여 새 요소를 생성합니다.
- `Array.from()`이 반복자가 아닌 유사 배열을 가져올 때, 중간에 빠진 부분을 존중합니다. `TypedArray.from()`은 결과가 희소 배열이 안되도록 보장합니다.

## 예제

### 순회 가능한 객체(Set)으로부터

```js
const s = new Set([1, 2, 3]);
Uint8Array.from(s);
// Uint8Array [ 1, 2, 3 ]
```

### 문자열로부터

```js
Int16Array.from("123");
// Int16Array [ 1, 2, 3 ]
```

### Map과 화살표 함수와 함께 사용

요소를 조작하는 Map 함수로서 화살표 함수 사용하기

```js
Float32Array.from([1, 2, 3], (x) => x + x);
// Float32Array [ 2, 4, 6 ]
```

### 일련의 번호 생성

```js
Uint8Array.from({ length: 5 }, (v, k) => k);
// Uint8Array [ 0, 1, 2, 3, 4 ]
```

### TypeArray가 아닌 생성자에서 from() 호출하기

`from()``this` 값은 `TypedArray` 인스턴스를 반환하는 생성자여야 합니다.

```js
function NotArray(len) {
console.log("NotArray called with length", len);
}

Int8Array.from.call({}, []); // TypeError: #<Object> is not a constructor
Int8Array.from.call(NotArray, []);
// NotArray는 length 0으로 호출되었습니다.
// TypeError: Method %TypedArray%.from called on incompatible receiver #<NotArray>
```

```js
function NotArray2(len) {
console.log("NotArray2 called with length", len);
return new Uint8Array(len);
}
console.log(Int8Array.from.call(NotArray2, [1, 2, 3]));
// NotArray2는 length 3으로 호출되었습니다.
// Uint8Array(3) [ 1, 2, 3 ]
```

## 명세서

{{Specifications}}

## 브라우저 호환성

{{Compat}}

## 같이 보기

- [`core-js`에서 `TypedArray.from`의 폴리필](https://github.com/zloirock/core-js#ecmascript-typed-arrays)
- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 안내서
- {{jsxref("TypedArray")}}
- {{jsxref("TypedArray.of()")}}
- {{jsxref("TypedArray.prototype.map()")}}
- {{jsxref("Array.from()")}}
Original file line number Diff line number Diff line change
@@ -1,34 +1,38 @@
---
title: TypedArray.prototype.length
slug: Web/JavaScript/Reference/Global_Objects/TypedArray/length
l10n:
sourceCommit: c2445ce1dc3a0170e2fbfdbee10e18a7455c2282
---

{{JSRef}}

**`length`** 접근자(accessor) 속성(property)은 형식화 배열의 (요소) 길이를 나타냅니다.
{{jsxref("TypedArray")}} 인스턴스의 **`length`** 접근자 속성은 이 형식화 배열의 요소의 수를 반환합니다.

{{EmbedInteractiveExample("pages/js/typedarray-length.html", "shorter")}}

## 설명

`length` 속성은 set 접근자 함수가 `undefined`인 접근자 속성입니다, 이 속성을 읽을 수만 있음을 뜻하는. 값은 *TypedArray*가 만들어질수립되어 변경될 수 없습니다. *TypedArray* `byteOffset` 또는 `length`를 지정하지 않은 경우, 참조되는 {{jsxref("ArrayBuffer")}}의 길이가 반환됩니다. *TypedArray*[TypedArray 객체 유형](/ko/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#TypedArray_객체) 중 하나입니다.
`length` 속성은 설정된 접근자 함수가 `undefined`인 접근자 속성으로, 이 속성을 읽을 수만 있습니다. 이 값은 TypedArray를 구성할설정되며 변경할 수 없습니다. TypeArray에서 `byteOffset` 또는 `length`를 지정하지 않으면 참조된 {{jsxref("ArrayBuffer")}}의 길이가 반환됩니다. TypeArray는 [TypeArray 객체](/ko/docs/Web/JavaScript/Reference/Global_Objects/TypeArray#typedarray_객체) 중 하나입니다.

## 예제

### `length` 속성 사용
### `length` 속성 사용하기

```js
var buffer = new ArrayBuffer(8);
const buffer = new ArrayBuffer(8);

var uint8 = new Uint8Array(buffer);
let uint8 = new Uint8Array(buffer);
uint8.length; // 8 (버퍼의 길이와 일치)

var uint8 = new Uint8Array(buffer, 1, 5);
uint8 = new Uint8Array(buffer, 1, 5);
uint8.length; // 5 (Uint8Array를 만들 때 지정된 대로)

var uint8 = new Uint8Array(buffer, 2);
uint8 = new Uint8Array(buffer, 2);
uint8.length; // 6 (만든 Uint8Array의 오프셋으로 인해)
```

## 명세
## 명세서

{{Specifications}}

Expand All @@ -38,5 +42,5 @@ uint8.length; // 6 (만든 Uint8Array의 오프셋으로 인해)

## 같이 보기

- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Typed_arrays)
- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 안내서
- {{jsxref("TypedArray")}}

0 comments on commit 335216f

Please sign in to comment.