diff --git a/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md new file mode 100644 index 00000000000000..961b2f71bed5b5 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md @@ -0,0 +1,81 @@ +--- +title: SharedArrayBuffer() 생성자 +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer +l10n: + sourceCommit: c2445ce1dc3a0170e2fbfdbee10e18a7455c2282 +--- + +{{JSRef}} + +> **참고:** `SharedArrayBuffer` 생성자는 특정 [보안 요구 사항](/ko/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements)이 충족되지 않는 한 항상 전역적으로 사용할 수 없습니다. + +**`SharedArrayBuffer()`** 생성자는 {{jsxref("SharedArrayBuffer")}} 객체를 생성합니다. + +{{EmbedInteractiveExample("pages/js/sharedarraybuffer-constructor.html", "shorter")}} + +## 구문 + +```js-nolint +new SharedArrayBuffer(length) +new SharedArrayBuffer(length, options) +``` + +> **참고:** `SharedArrayBuffer()`는 오직 [`new`](/ko/docs/Web/JavaScript/Reference/Operators/new)로만 생성할 수 있습니다. `new` 없이 호출하면 {{jsxref("TypeError")}} 예외가 발생합니다. + +### 매개변수 + +- `length` + - : 생성할 배열 버퍼의 바이트 단위의 크기. +- `options` {{optional_inline}} + - : 아래 속성을 포함하고 있는 객체 + - `maxByteLength` {{optional_inline}} + - : 공유 배열 버퍼의 최대 크기 조정이 가능한 바이트 단위의 최대 크기. + +### 반환 값 + +`maxByteLength`가 명시되었다면 {{jsxref("SharedArrayBuffer/maxByteLength", "maxByteLength")}} 속성이 명시된 `maxByteLength`로 설정된 명시된 크기의 새로운 `SharedArrayBuffer`를 반환합니다. +내용은 0으로 초기화 됩니다. + +## 예제 + +### SharedArrayBuffer를 생성하기 위해 언제나 new 연산자를 사용하세요 + +`SharedArrayBuffer` 생성자는 {{jsxref("Operators/new", "new")}} 연산자와 함께 생성해야 합니다. +`SharedArrayBuffer` 생성자를 `new` 없이 호출하면 +{{jsxref("TypeError")}}가 발생합니다. + +```js example-bad +const sab = SharedArrayBuffer(1024); +// TypeError: 내장 SharedArrayBuffer 생성자를 +// new 없이 호출하는 것은 금지됩니다. +``` + +```js example-good +const sab = new SharedArrayBuffer(1024); +``` + +### 크기를 늘릴 수 있는 SharedArrayBuffer 크기 늘리기 + +이 예제에서 크기가 최대 16바이트로 늘어날 수 있는 8바이트 버퍼를 생성하고 {{jsxref("SharedArrayBuffer/grow", "grow()")}}를 통해 12바이트로 늘립니다. + +```js +const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 }); + +buffer.grow(12); +``` + +> **참고:** `maxByteLength`는 사용 사례에 맞게 가능하면 가장 작은 수를 설정하기를 권장합니다. 메모리 부족 오류의 위험성을 감소시키기 위해 `1073741824`(1GB)를 초과할 수 없습니다. + +## 명세서 + +{{Specifications}} + +## 브라우저 호환성 + +{{Compat}} + +## 같이 보기 + +- {{jsxref("Atomics")}} +- {{jsxref("ArrayBuffer")}} +- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 안내서 diff --git a/files/ko/web/javascript/reference/global_objects/string/padstart/index.md b/files/ko/web/javascript/reference/global_objects/string/padstart/index.md index fe105129ec2746..64cf0b59f8700e 100644 --- a/files/ko/web/javascript/reference/global_objects/string/padstart/index.md +++ b/files/ko/web/javascript/reference/global_objects/string/padstart/index.md @@ -1,32 +1,43 @@ --- title: String.prototype.padStart() slug: Web/JavaScript/Reference/Global_Objects/String/padStart +l10n: + sourceCommit: b7ca46c94631967ecd9ce0fe36579be334a01275 --- {{JSRef}} -**`padStart()`** 메서드는 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다. 채워넣기는 대상 문자열의 시작(좌측)부터 적용됩니다. +**`padStart()`** 메서드는 {{jsxref("String")}} 값의 메서드로, 결과 문자열이 주어진 길이에 도달할 때까지 이 문자열의 시작 부분에 다른 문자열을 (필요하다면 여러 번) 채웁니다. +패딩은 이 문자열의 시작 부분부터 적용됩니다. {{EmbedInteractiveExample("pages/js/string-padstart.html")}} ## 구문 -```js -str.padStart(targetLength [, padString]) +```js-nolint +padStart(targetLength) +padStart(targetLength, padString) ``` ### 매개변수 - `targetLength` - - : 목표 문자열 길이. 현재 문자열의 길이보다 작다면 채워넣지 않고 그대로 반환. + - : 현재 `str`이 패딩된 후의 결과 문자열의 길이입니다. + 만약 이 값이 `str.length보`다 작거나 같다면, + `str`이 그대로 반환됩니다. - `padString` {{optional_inline}} - - : 현재 문자열에 채워넣을 다른 문자열. 문자열이 너무 길어 목표 문자열 길이를 초과한다면 좌측 일부를 잘라서 넣음. 기본값은 " ". (U+0020) + - : 현재 `str`을 채우는 데 사용할 문자열입니다. + 만약 `padString`이 `targetLength` 대비 너무 길다면, + 끝 부분이 잘립니다. 기본값은 유니코드 + "space" 문자 (U+0020)입니다. + +### 반환 값 -### 반환값 +지정된 `targetLength`의 {{jsxref("String")}}으로, `padString`이 시작 부분부터 적용됩니다. -시작점부터 주어진 문자열로 채워 목표 길이를 만족하는 {{jsxref("String")}}. +## 예제 -## 예시 +### 기본 예제 ```js "abc".padStart(10); // " abc" @@ -36,31 +47,20 @@ str.padStart(targetLength [, padString]) "abc".padStart(1); // "abc" ``` -## 폴리필 - -다른 모든 코드 이전에 아래 코드를 포함하면 지원하지 않는 플랫폼에서도 `String.prototype.padStart()` 메서드를 사용할 수 있습니다. +### 고정 길이 문자열 숫자 변환 ```js -// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js -// https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/padStart -if (!String.prototype.padStart) { - String.prototype.padStart = function padStart(targetLength, padString) { - targetLength = targetLength >> 0; //truncate if number or convert non-number to 0; - padString = String(typeof padString !== "undefined" ? padString : " "); - if (this.length > targetLength) { - return String(this); - } else { - targetLength = targetLength - this.length; - if (targetLength > padString.length) { - padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed - } - return padString.slice(0, targetLength) + String(this); - } - }; +// JavaScript version of: (unsigned) +// printf "%0*d" width num +function leftFillNum(num, targetLength) { + return num.toString().padStart(targetLength, "0"); } + +const num = 123; +console.log(leftFillNum(num, 5)); // "00123" ``` -## 명세 +## 명세서 {{Specifications}} @@ -70,4 +70,5 @@ if (!String.prototype.padStart) { ## 같이 보기 +- [`core-js`에서의 `String.prototype.padStart` 폴리필](https://github.com/zloirock/core-js#ecmascript-string-and-regexp) - {{jsxref("String.prototype.padEnd()")}}