diff options
author | Jongha Kim <kim.jongha@gmail.com> | 2021-12-11 09:34:57 +0900 |
---|---|---|
committer | Kyle <mkitigy@gmail.com> | 2021-12-27 07:57:07 +0900 |
commit | 15614b7df42ed78a71d203f338b55534c2233b10 (patch) | |
tree | 0898f6a33eb2eb29b6696a2e2d273fc84b979861 | |
parent | fd51637472a6f0ca7586834031d8abd051b8b8ac (diff) | |
download | translated-content-15614b7df42ed78a71d203f338b55534c2233b10.tar.gz translated-content-15614b7df42ed78a71d203f338b55534c2233b10.tar.bz2 translated-content-15614b7df42ed78a71d203f338b55534c2233b10.zip |
Javascript/Number 동기화 및 생성자 추가
3 files changed, 225 insertions, 177 deletions
diff --git a/files/ko/web/javascript/reference/global_objects/number/index.html b/files/ko/web/javascript/reference/global_objects/number/index.html deleted file mode 100644 index 84b12f0926..0000000000 --- a/files/ko/web/javascript/reference/global_objects/number/index.html +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Number -slug: Web/JavaScript/Reference/Global_Objects/Number -tags: - - JavaScript - - Number - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Number ---- -<div>{{JSRef}}</div> - -<p><strong><code>Number</code></strong> 객체는 숫자 값으로 작업할 수 있게 해주는 래퍼(wrapper) 객체입니다. <code>Number</code> 객체는 <strong><code>Number()</code> 생성자</strong>를 사용하여 만듭니다. 원시 숫자 자료형은 <strong><code>Number()</code> 함수</strong>를 사용해 생성합니다.</p> - -<h2 id="구문">구문</h2> - -<pre class="syntaxbox">new Number(<em>value</em>); -var <em>a</em> = new Number('123'); // a === 123은 false -var <em>b</em> = Number('123'); // b === 123은 true -<em>a</em> instanceof Number; // true -<em>b</em> instanceof Number; // false</pre> - -<h3 id="매개변수">매개변수</h3> - -<dl> - <dt><code>value</code></dt> - <dd>생성할 객체의 숫자 값.</dd> -</dl> - -<h2 id="설명">설명</h2> - -<p><code>Number</code> 객체의 주된 용도는 다음과 같습니다.</p> - -<ul> - <li>만약 인수를 숫자로 변환할 수 없으면 {{jsxref("NaN")}}을 리턴합니다.</li> - <li>생성자로써 사용하지 않으면({{jsxref("Operators/new", "new")}} 연산자를 사용하지 않으면) <code>Number</code>를 사용하여 형변환을 할 수 있습니다.</li> -</ul> - -<h2 id="속성">속성</h2> - -<dl> - <dt>{{jsxref("Number.EPSILON")}}</dt> - <dd>두 개의 표현 가능한 숫자 사이의 최소 간격.</dd> - <dt>{{jsxref("Number.MAX_SAFE_INTEGER")}}</dt> - <dd>JavaScript에서 안전한 최대 정수. (<code>2^53 - 1</code>)</dd> - <dt>{{jsxref("Number.MAX_VALUE")}}</dt> - <dd>표현 가능한 가장 큰 양수.</dd> - <dt>{{jsxref("Number.MIN_SAFE_INTEGER")}}</dt> - <dd>JavaScript에서 안전한 최소 정수. (<code>-(2^53 - 1)</code>)</dd> - <dt>{{jsxref("Number.MIN_VALUE")}}</dt> - <dd>표현 가능한 가장 작은 양수. 즉, 0보다 크지만 0에 가장 가까운 양수.</dd> - <dt>{{jsxref("Number.NaN")}}</dt> - <dd>"숫자가 아님"을 나타내는 특별한 값.</dd> - <dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt> - <dd>음의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다.</dd> - <dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt> - <dd>양의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다.</dd> - <dt>{{jsxref("Number.prototype")}}</dt> - <dd><code>Number</code> 객체에 속성을 추가할 수 있습니다.</dd> -</dl> - -<h2 id="메서드">메서드</h2> - -<dl> - <dt>{{jsxref("Number.isNaN()")}}</dt> - <dd>주어진 값이 <code>NaN</code>인지 확인합니다.</dd> - <dt>{{jsxref("Number.isFinite()")}}</dt> - <dd>주어진 값이 유한수 인지 확인합니다.</dd> - <dt>{{jsxref("Number.isInteger()")}}</dt> - <dd>주어진 값이 정수인지 확인합니다.</dd> - <dt>{{jsxref("Number.isSafeInteger()")}}</dt> - <dd>주어진 값이 안전한 정수(<code>-(2^53 - 1)</code>과 <code>2^53 - 1</code> 사이의 정수)인지 확인합니다.</dd> - <dt><s class="obsoleteElement">{{jsxref("Number.toInteger()")}} {{obsolete_inline}}</s></dt> - <dd><s class="obsoleteElement">전달 된 값을 평가하고 이를 정수(혹은 {{jsxref("Infinity", "Infinity")}})로 변환하는데 사용되지만, 제거되었습니다.</s></dd> - <dt>{{jsxref("Number.parseFloat()")}}</dt> - <dd>전역 객체 {{jsxref("parseFloat", "parseFloat()")}}와 동일한 값입니다.</dd> - <dt>{{jsxref("Number.parseInt()")}}</dt> - <dd>전역 객체 {{jsxref("parseInt", "parseInt()")}}와 동일한 값입니다.</dd> -</dl> - -<h2 id="Number_인스턴스"><code>Number</code> 인스턴스</h2> - -<p>모든 <code>Number</code> 인스턴스는 {{jsxref("Number.prototype")}}를 상속합니다. <code>Number</code> 생성자의 프로토타입 객체는 모든 <code>Number</code> 인스턴스에 영향을 미치도록 수정할 수 있습니다.</p> - -<h3 id="메서드_2">메서드</h3> - -<div>{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}</div> - -<h2 id="예제">예제</h2> - -<h3 id="Number_객체를_사용해_숫자형_변수에_할당"><code>Number</code> 객체를 사용해 숫자형 변수에 할당</h3> - -<p>다음 예제에서는 <code>Number</code> 객체의 속성을 사용하여, 여러 숫자 변수에 값을 할당합니다:</p> - -<pre class="brush: js">var biggestNum = Number.MAX_VALUE; -var smallestNum = Number.MIN_VALUE; -var infiniteNum = Number.POSITIVE_INFINITY; -var negInfiniteNum = Number.NEGATIVE_INFINITY; -var notANum = Number.NaN; -</pre> - -<h3 id="Number의_정수_범위"><code>Number</code>의 정수 범위</h3> - -<p>다음 예제는 <code>Number</code> 객체가 표현할 수 있는 정수의 최소값과 최대값을 보여줍니다. (자세한 내용은 ECMAScript 표준, <em><a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type">6.1.6 The Number Type</a> 장을 참고하세요)</em></p> - -<pre class="brush: js">var biggestInt = 9007199254740992; -var smallestInt = -9007199254740992; -</pre> - -<p>JSON으로 직렬화한 데이터를 읽을 때, 위의 범위를 벗어나는 수는 JSON 분석기의 <code>Number</code> 형변환 시 손상될 수 있습니다. 이 때는 {{jsxref("String")}}을 대신 사용하는 것도 방법입니다.</p> - -<h3 id="Number를_사용해_Date_객체_숫자로_변환"><code>Number</code>를 사용해 <code>Date</code> 객체 숫자로 변환</h3> - -<p>다음 예제는 <code>Number</code>를 함수로 사용하여 {{jsxref("Date")}} 객체를 숫자 값으로 변환합니다.</p> - -<pre class="brush: js">var d = new Date('December 17, 1995 03:24:00'); -console.log(Number(d)); -</pre> - -<p><code>819199440000</code>가 기록됩니다.</p> - -<h3 id="숫자형_문자열에서_숫자로_변환">숫자형 문자열에서 숫자로 변환</h3> - -<pre class="brush: js">Number('123') // 123 -Number('12.3') // 12.3 -Number('123e-1') // 12.3 -Number('') // 0 -Number(null) // 0 -Number('0x11') // 17 -Number('0b11') // 3 -Number('0o11') // 9 -Number('foo') // NaN -Number('100a') // NaN</pre> - -<h2 id="명세">명세</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES1')}}</td> - <td>{{Spec2('ES1')}}</td> - <td>Initial definition. Implemented in JavaScript 1.1.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.7', 'Number')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-number-objects', 'Number')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>New methods and properties added: ({{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}})</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="브라우저_호환성">브라우저 호환성</h2> - -<div> -<p>{{Compat("javascript.builtins.Number")}}</p> -</div> - -<h2 id="같이_보기">같이 보기</h2> - -<ul> - <li>{{jsxref("NaN")}}</li> - <li>{{jsxref("Math")}}</li> -</ul> diff --git a/files/ko/web/javascript/reference/global_objects/number/index.md b/files/ko/web/javascript/reference/global_objects/number/index.md new file mode 100644 index 0000000000..99dc3bebca --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/number/index.md @@ -0,0 +1,173 @@ +--- +title: Number +slug: Web/JavaScript/Reference/Global_Objects/Number +tags: + - Class + - JavaScript + - Number + - Reference + - Polyfill +browser-compat: javascript.builtins.Number +--- + +{{JSRef}}**`Number`** 는 `37`이나 `-9.25`와 같은 숫자를 표현하고 다룰 때 사용하는 [원시 래퍼 객체](/ko/docs/Glossary/Primitive#primitive_wrapper_objects_in_javascript)입니다. + +`Number` 생성자는 숫자를 다루기 위해 상수와 메소드를 가지고 있습니다. 다른 타입의 값은 `Number()` 함수를 사용하여 숫자로 바꿀 수 있습니다. + +JavaScript `Number` 타입은 Java 혹은 C#의 `double` 타입처럼 [IEEE 754 64비트 바이너리 배정 밀도](https://en.wikipedia.org/wiki/Floating-point_arithmetic) 값입니다. 즉, 분수 값을 나타낼 수 있지만 저장할 수 있는 값에는 몇 가지 제한이 있습니다. `Number`는 소수점 이하 17자리 정도만 유지하며 산술은 [반올림](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Representable_numbers,_conversion_and_rounding)의 대상이 됩니다. `Number`가 가질 수 있는 가장 큰 값은 1.8E308 입니다. 그보다 더 큰 값은 특별한 `Number` 상수인 {{jsxref("Infinity")}}으로 대체됩니다. + +JavaScript 코드에서 `37`과 같은 숫자 리터럴은 정수가 아니라 부동 소수점 값입니다. 일상적으로 흔히 사용되는 별도의 정수형은 없습니다. (JavaScript에는 이제 {{jsxref("BigInt")}} 타입이 있지만 일상적인 사용을 위해 Number를 대체하도록 설계되지 않았습니다. `37`은 여전히 `Number`일 뿐, BigInt가 아닙니다.) + +`Number`는 `0b101`, `0o13`, `0x0A`와 같은 리터럴 형식으로 표현될 수도 있습니다. 수에 대해서 더 알아보고 싶으면 [어휘 문법](/ko/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_literals)를 참조하세요. + +## 설명 + +`Number(value)`처럼 함수로 사용하면 문자열이나 다른 값을 Number 타입으로 변환합니다. 만약 만약 인수를 숫자로 변환할 수 없으면 {{jsxref("NaN")}}을 리턴합니다. + +### 리터럴 구문 + +```js +123; // 백 이십 삼 +123.0; // 동일 +123 === 123.0; // 참 +``` + +### 함수 구문 + +```js +Number('123'); // 숫자 123을 반환 +Number('123') === 123; // 참 + +Number('unicorn'); // NaN +Number(undefined); // NaN +``` + +## Constructor + +- [`Number()`](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) + - : 새로운 `Number` 값을 생성합니다. + +## Static properties + +- {{jsxref("Number.EPSILON")}} + - : 두 개의 표현 가능한 숫자 사이의 최소 간격. +- {{jsxref("Number.MAX_SAFE_INTEGER")}} + - : JavaScript에서 안전한 최대 정수. (`2^53 - 1`) +- {{jsxref("Number.MAX_VALUE")}} + - : 표현 가능한 가장 큰 양수. +- {{jsxref("Number.MIN_SAFE_INTEGER")}} + - : JavaScript에서 안전한 최소 정수. (`-(2^53 - 1)`). +- {{jsxref("Number.MIN_VALUE")}} + - : T표현 가능한 가장 작은 양수. 즉, 0보다 크지만 0에 가장 가까운 양수. +- {{jsxref("Number.NaN")}} + - : "**N**ot **a** **N**umber"(숫자가 아님)을 나타내는 특별한 값. +- {{jsxref("Number.NEGATIVE_INFINITY")}} + - : 음의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다. +- {{jsxref("Number.POSITIVE_INFINITY")}} + - : 양의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다. +- {{jsxref("Number", "Number.prototype")}} + - : `Number` 객체에 속성을 추가할 수 있습니다. + +## 정적 메소드 + +- {{jsxref("Number.isNaN()")}} + - : 주어진 값이 `NaN`인지 확인합니다. +- {{jsxref("Number.isFinite()")}} + - : 주어진 값이 유한수 인지 확인합니다. +- {{jsxref("Number.isInteger()")}} + - : 주어진 값이 정수인지 확인합니다. +- {{jsxref("Number.isSafeInteger()")}} + - : 주어진 값이 안전한 정수(`-(2^53 - 1)`과 `2^53 - 1` 사이의 정수)인지 확인합니다. +- {{jsxref("Number.parseFloat()", "Number.parseFloat(<var>string</var>)")}} + - : 전역 객체 {{jsxref("parseFloat", "parseFloat()")}}와 동일한 값입니다. +- {{jsxref("Number.parseInt()", "Number.parseInt(<var>string</var>, [<var>radix</var>])")}} + - : 전역 객체 {{jsxref("parseInt", "parseInt()")}}와 동일한 값입니다. + +## 인스턴스 메소드 + +- {{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(<var>fractionDigits</var>)")}} + - : 지수 표기법으로 표기된 숫자를 표현하는 문자열을 반환한다 +- {{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(<var>digits</var>)")}} + - : 고정 소수점 표기법으로 숫자를 표현하는 문자열을 반환합니다. +- {{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([<var>locales</var> [, <var>options</var>]])")}} + - : 이 숫자를 해당 언어 방식으로 표현된 문자열을 반환합니다. {{jsxref("Object.prototype.toLocaleString()")}} 메서드를 재정의합니다. +- {{jsxref("Number.prototype.toPrecision()", "Number.prototype.toPrecision(<var>precision</var>)")}} + - : 고정 소수점 또는 지수 표기법으로 지정된 정밀도로 숫자를 표현하는 문자열을 반환합니다. +- {{jsxref("Number.prototype.toString()", "Number.prototype.toString([<var>radix</var>])")}} + - : 지정한 _기수_("base")에서 지정한 개체를 표현하는 문자열을 반환합니다. {{jsxref("Object.prototype.toString()")}} 메서드를 재정의합니다. +- {{jsxref("Number.prototype.valueOf()")}} + - : 명시된 객체의 원시 값을 반환합니다. {{jsxref("Object.prototype.valueOf()")}} 메서드를 재정의합니다. + +## 예제 + +### Number 객체를 사용해 숫자형 변수에 할당 + +다음 예제에서는 `Number` 객체의 속성을 사용하여, 여러 숫자 변수에 값을 할당합니다: + +```js +const biggestNum = Number.MAX_VALUE; +const smallestNum = Number.MIN_VALUE; +const infiniteNum = Number.POSITIVE_INFINITY; +const negInfiniteNum = Number.NEGATIVE_INFINITY; +const notANum = Number.NaN; +``` + +### Number의 정수 범위 + +다음 예제는 Number 객체가 표현할 수 있는 정수의 최소값과 최대값을 보여줍니다. (자세한 내용은 ECMAScript 표준, _[6.1.6 The Number Type](https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type)_ 장을 참고하세요. + +```js +const biggestInt = Number.MAX_SAFE_INTEGER; // (2**53 - 1) => 9007199254740991 +const smallestInt = Number.MIN_SAFE_INTEGER; // -(2**53 - 1) => -9007199254740991 +``` + +JSON으로 직렬화한 데이터를 읽을 때, 위의 범위를 벗어나는 수는 JSON 분석기의 `Number` 형변환 시 손상될 수 있습니다. 이 때는 String을 대신 사용하는 것도 방법입니다. + +{{jsxref("String")}}를 사용하는 것도 대안입니다. + +더 큰 수는 {{jsxref("BigInt")}} 타입으로 표현할 수 있습니다. + +### Number를 사용해 Date 객체 숫자로 변환 + +다음 예제는 `Number`를 함수로 사용하여 {{jsxref("Date")}} 객체를 숫자 값으로 변환합니다. + +```js +let d = new Date('December 17, 1995 03:24:00'); +console.log(Number(d)); +``` + +`819199440000`가 기록됩니다. + +### 숫자형 문자열에서 숫자로 변환 + +```js +Number('123'); // 123 +Number('123') === 123; // true +Number('12.3'); // 12.3 +Number('12.00'); // 12 +Number('123e-1'); // 12.3 +Number(''); // 0 +Number(null); // 0 +Number('0x11'); // 17 +Number('0b11'); // 3 +Number('0o11'); // 9 +Number('foo'); // NaN +Number('100a'); // NaN +Number('-Infinity'); // -Infinity +``` + +## 명세 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이보기 + +- 최신 `Number` 동작(2진수와 8진수를 지원하는)의 폴리필은 [`core-js`](https://github.com/zloirock/core-js#ecmascript-number)를 참고하세요 +- {{jsxref("NaN")}} +- {{jsxref("Arithmetic operators")}} +- {{jsxref("Math")}} 전역 객체 +- 임의 정밀도 정수: {{jsxref("BigInt")}} diff --git a/files/ko/web/javascript/reference/global_objects/number/number/index.md b/files/ko/web/javascript/reference/global_objects/number/number/index.md new file mode 100644 index 0000000000..a9e97ed18d --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/number/number/index.md @@ -0,0 +1,52 @@ +--- +title: Number() 생성자 +slug: Web/JavaScript/Reference/Global_Objects/Number/Number +tags: + - Constructor + - JavaScript + - Number + - Reference + - Polyfill +browser-compat: javascript.builtins.Number.Number +--- + +{{JSRef}} + +**`Number()` 생성자**는 {{jsxref("Number")}} 객체를 생성합니다. + +## 구문 + +```js +new Number(value); +``` + +### 매개변수 + +- `value` + - : 만들어질 객체의 숫자 값. + +## 예제 + +### Number 객체 만들기 + +```js +const a = new Number('123'); // a === 123 은 거짓 +const b = Number('123'); // b === 123 은 참 +a instanceof Number; // 참 +b instanceof Number; // 참 +``` + +## 명세 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이 보기 + +- 최신 `Number` 동작(2진수와 8진수를 지원하는)의 폴리필은 [`core-js`](https://github.com/zloirock/core-js#ecmascript-number)를 참고하세요 +- {{jsxref("NaN")}} +- {{jsxref("Math")}} 전역 객체 +- 임의 정밀도 정수: {{jsxref("BigInt")}} |