From ca86272cad69a087128b5a51a0334e8286df3744 Mon Sep 17 00:00:00 2001 From: Jongha Kim Date: Mon, 28 Oct 2024 02:16:38 +0900 Subject: [PATCH] =?UTF-8?q?[ko]=20DataView.prototype.getFloat16()=20?= =?UTF-8?q?=EC=8B=A0=EA=B7=9C=20=EB=B2=88=EC=97=AD=20=EC=99=B8=20(#22391)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [ko] DataView.prototype.getFloat16() 신규 번역 외 - DataView.prototype.getFloat16() 신규 번역 외 - ArrayBuffer.prototype.byteLength 최신화 - Number.isInteger() 최신화 * Update files/ko/web/javascript/reference/global_objects/number/isinteger/index.md --------- Co-authored-by: hochan Lee --- .../arraybuffer/bytelength/index.md | 27 +++++--- .../dataview/getfloat16/index.md | 61 +++++++++++++++++++ .../global_objects/number/isinteger/index.md | 40 ++++++------ 3 files changed, 98 insertions(+), 30 deletions(-) create mode 100644 files/ko/web/javascript/reference/global_objects/dataview/getfloat16/index.md diff --git a/files/ko/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md b/files/ko/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md index e8ef4e61743a6e..18e28267e5968d 100644 --- a/files/ko/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md +++ b/files/ko/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md @@ -1,6 +1,8 @@ --- title: ArrayBuffer.prototype.byteLength slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength +l10n: + sourceCommit: 16bacf2194dc9e9ff6ee5bcc65316547cf88a8d9 --- {{JSRef}} @@ -9,24 +11,27 @@ slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength {{EmbedInteractiveExample("pages/js/arraybuffer-bytelength.html")}} -## 구문 - -```js -arraybuffer.byteLength; -``` - ## 설명 -`byteLength` 속성은 설정자 속성이 `undefined`인 접근자 속성으로, 오직 읽기만 가능합니다. `byteLength`는 배열 버퍼를 처음 생성할 때 정해지며 바꿀 수 없습니다. `ArrayBuffer`가 분리된 경우 0을 반환합니다. +`byteLength` 속성은 설정된 접근자 함수가 `undefined`인 접근자 속성으로, 이 속성은 읽을 수만 있습니다. 이 값은 `DataView`가 생성될 때 설정되며 변경할 수 없습니다. `DataView`가 오프셋이나 `byteLength`를 지정하지 않은 경우 참조된 `ArrayBuffer` 혹은 `SharedArrayBuffer`의 `byteLength`가 반환됩니다. ## 예제 +### byteLength 속성 사용하기 + ```js -var buffer = new ArrayBuffer(8); -buffer.byteLength; // 8 +const buffer = new ArrayBuffer(8); +const dataview = new DataView(buffer); +dataview.byteLength; // 8 (버퍼의 byteLength와 일치합니다) + +const dataview2 = new DataView(buffer, 1, 5); +dataview2.byteLength; // 5 (DataView 생성 시 명시된 값) + +const dataview3 = new DataView(buffer, 2); +dataview3.byteLength; // 6 (DataView 생성 시의 오프셋) ``` -## 명세 +## 명세서 {{Specifications}} @@ -36,4 +41,6 @@ buffer.byteLength; // 8 ## 같이 보기 +- {{jsxref("DataView")}} - {{jsxref("ArrayBuffer")}} +- {{jsxref("SharedArrayBuffer")}} diff --git a/files/ko/web/javascript/reference/global_objects/dataview/getfloat16/index.md b/files/ko/web/javascript/reference/global_objects/dataview/getfloat16/index.md new file mode 100644 index 00000000000000..d1122b87a41034 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/dataview/getfloat16/index.md @@ -0,0 +1,61 @@ +--- +title: DataView.prototype.getFloat16() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat16 +l10n: + sourceCommit: fb442649a7e91a177a582a3e9c6e1a95a9e8dda5 +--- + +{{JSRef}} + +{{jsxref("DataView")}} 인스턴스의 **`getFloat16()`** 메서드는 이 `DataView`의 지정된 바이트 오프셋에서 2바이트를 읽고 이를 16비트 부동소수점 숫자로 해석합니다. 정렬 제약 조건은 없으며, 범위 내의 모든 오프셋에서 멀티바이트 값을 가져올 수 있습니다. + +{{EmbedInteractiveExample("pages/js/dataview-getfloat16.html")}} + +## 구문 + +```js-nolint +getFloat16(byteOffset) +getFloat16(byteOffset, littleEndian) +``` + +### 매개변수 + +- `byteOffset` + - : 데이터를 읽을 뷰의 시작 부분으로부터의 오프셋(바이트 단위)입니다. +- `littleEndian` {{optional_inline}} + - : [리틀 엔디언 혹은 빅 엔디언](/ko/docs/Glossary/Endianness) 형식으로 저장되는지 여부를 나타냅니다. 만약 `false` 혹은 `undefined`라면 빅 엔디언 값을 읽습니다. + +### 반환 값 + +`-65504`부터 `65504`까지의 부동 소수점 숫자. + +### 예외 + +- {{jsxref("RangeError")}} + - : 데이터 뷰의 끝을 넘어서 읽을 수 있는 `byteOffset`이 설정된 경우 발생합니다. + +## 예제 + +### getFloat16() 사용하기 + +```js +const { buffer } = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); +const dataview = new DataView(buffer); +console.log(dataview.getFloat16(1)); // 0.00001537799835205078 +``` + +## 명세서 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이 보기 + +- [`core-js`에서의 `DataView.prototype.getFloat16` 폴리필](https://github.com/zloirock/core-js#float16-methods) +- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 안내서 +- {{jsxref("DataView")}} +- {{jsxref("ArrayBuffer")}} +- {{jsxref("Float16Array")}} diff --git a/files/ko/web/javascript/reference/global_objects/number/isinteger/index.md b/files/ko/web/javascript/reference/global_objects/number/isinteger/index.md index 63f9607db724c9..9ff484bc2ede89 100644 --- a/files/ko/web/javascript/reference/global_objects/number/isinteger/index.md +++ b/files/ko/web/javascript/reference/global_objects/number/isinteger/index.md @@ -1,18 +1,20 @@ --- title: Number.isInteger() slug: Web/JavaScript/Reference/Global_Objects/Number/isInteger +l10n: + sourceCommit: 70f09675ddcfc75a3bb66d2dce4cf82738948a37 --- {{JSRef}} -**`Number.isInteger()`** 메서드는 주어진 값이 정수인지 판별합니다. +**`Number.isInteger()`** 정적 메서드는 전달받은 값의 정수 여부를 판별합니다. {{EmbedInteractiveExample("pages/js/number-isinteger.html")}} ## 구문 -```js -Number.isInteger(value); +```js-nolint +Number.isInteger(value) ``` ### 매개변수 @@ -22,14 +24,20 @@ Number.isInteger(value); ### 반환 값 -주어진 값의 정수 여부를 나타내는 {{jsxref("Boolean")}}. +주어진 값이 정수라면 불리언 값 `true`, 그렇지 않으면 `false` 입니다. ## 설명 -매개변수의 값이 정수면 `true`를, 아니면 `false`를 반환합니다. 값이 {{jsxref("NaN")}}이거나 {{jsxref("Infinity")}}여도 `false`를 반환합니다. +대상 값이 정수이면 `true`를 반환하고, 그렇지 않으면 `false`를 반환합니다. 값이 {{jsxref("NaN")}} 또는 {{jsxref("Infinity")}}인 경우 `false`를 반환합니다. 이 메서드는 정수로 표현할 수 있는 부동 소수점 숫자에 대해서도 `true`를 반환합니다. 값이 숫자가 아닌 경우 항상 `false`를 반환합니다. + +일부 숫자 리터럴은 정수가 아닌 것처럼 보이지만 실제로는 정수를 나타내며, 이는 ECMAScript 부동 소수점 숫자 인코딩의 정밀도 제한(IEEE-754)으로 인해 발생합니다. 예를 들어 `5.0000000000000001`는 `5`와 `1e-16`만큼만 차이가 나며, 이는 너무 작아서 표현할 수 없습니다. (참고로, [`Number.EPSILON`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON)은 1과 1보다 큰 다음 표현 가능한 부동 소수점 수 사이의 거리를 저장하며, 이는 약 `2.22e-16`입니다). 따라서 `5.0000000000000001`는 `5`와 동일한 인코딩으로 표현되므로 `Number.isInteger(5.0000000000000001)`는 `true`를 반환하게 됩니다. + +이와 비슷하게 [`Number.MAX_SAFE_INTEGER`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)의 주변의 숫자는 정밀도 손실로 인해 정수가 아닌 경우에도 `Number.isInteger`가 `true`를 반환하게 됩니다. (실제 임계값은 10진수를 표현하는 데 필요한 비트 수에 따라 달라집니다. 예를 들어 `Number.isInteger(4500000000000000.1)`는 `true`이지만 `Number.isInteger(4500000000000000.5)`는 `false`입니다.). ## 예제 +### isInteger 사용하기 + ```js Number.isInteger(0); // true Number.isInteger(1); // true @@ -46,23 +54,14 @@ Number.isInteger("10"); // false Number.isInteger(true); // false Number.isInteger(false); // false Number.isInteger([1]); // false -``` - -## 폴리필 -```js -Number.isInteger = - Number.isInteger || - function (value) { - return ( - typeof value === "number" && - isFinite(value) && - Math.floor(value) === value - ); - }; +Number.isInteger(5.0); // true +Number.isInteger(5.000000000000001); // false +Number.isInteger(5.0000000000000001); // true, 정밀도 손실 발생 +Number.isInteger(4500000000000000.1); // true, 정밀도 손실 발생 ``` -## 명세 +## 명세서 {{Specifications}} @@ -72,4 +71,5 @@ Number.isInteger = ## 같이 보기 -- 메서드가 속한 {{jsxref("Number")}} 객체. +- [`core-js`에서의 `Number.isInteger` 폴리필](https://github.com/zloirock/core-js#ecmascript-number) +- {{jsxref("Number")}}