JavaScript_standard-built-in-object.md
๐กJavascript Study
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive + Mozilla
๐ํ์ค ๋นํธ์ธ ๊ฐ์ฒด/ํ์ค ๋ด์ฅ ๊ฐ์ฒด Standard Built-in Object
์๋ฐ์คํฌ๋ฆฝํธ https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ค ๋ด์ฅ ๊ฐ์ฒด์ ๋ํ ๋ด์ฉ์ ๋๋ค(์๋ฐ์คํฌ๋ฆฝํธ ํต์ฌ ๊ธฐ๋ฅ)
- ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ์์ฒด์ ๋ด์ฅ๋์ด ์์ด์, ์ด๋ค ํ๊ฒฝ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฒด ์ ๊ทผ
- ํ์ค ๋ด์ฅ ๊ฐ์ฒด๋ Strict ๋ชจ๋ ์ฌ๋ถ์ ๋ฐ๋ผ, ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทผํ ์ ์๋ค.
| ๊ตฌ๋ถ | ์ ๊ทผ | | --------------------- | ---------- | | Strict Mode์ผ ๋ | globalThis | | Strict Mode๊ฐ ์๋ ๋ | this |
๋ด์ฉ
| ๊ตฌ๋ถ | ํด๋น ๊ฐ | ๋น๊ณ | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ๊ฐ ์์ฑ | Infinity, NaN, undefined, globalThis | ์์ํ๊ณผ๋ ๋ค๋ฅด๋ค!๐ก ๋ฐ์ดํฐ ํ์ ์ด ์๋! | | ํจ์ ์์ฑ | eval(), isFinite(), isNaN(), parseFloat()/๋ถ๋์์ซ์ , parseInt()/์ ์, endcodeURI()/ํน์๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉ, encodeURIComponent(), decodeURI(), decodeURIComponent() | ๋ฌธ์์ด ์ธ์ฝ๋ฉ encodeURI, (deprecated)escape, ๋ฌธ์์ด ๋์ฝ๋ฉ decodeURI, (deprecated)unescape | | ๊ธฐ์ด ๊ฐ์ฒด | Object, Function, Boolean, Symbol | ์ผ๋ฐ ๊ฐ์ฒด, ํจ์, ์ค๋ฅ ๊ฐ์ฒด ํฌํจ | | ์ค๋ฅ ๊ฐ์ฒด | Error, AggregateError, EvalError, InternalError(๋นํ์ค), RangeError(๊ฐ ๋ฒ์๊ฐ ์๋ ์ธ์ ์ ๋ฌ), ReferenceError(๋ณ์ ์ฐธ์กฐ), SyntaxError(๋ฌธ๋ฒ ์๋ฌ), TypeError(์๋ฃํ), URIError(์ ์ญ URI ํธ๋ค๋ง ํจ์ ์ค์ฌ์ฉ) | AggregateError(Promise.any()๋ก ์ ๋ฌ๋ ๋ชจ๋ ํ๋ก๋ฏธ์ค ๊ฑฐ๋ถ, Error ํ์ ํด๋์ค), RangeError(๊ฐ ๋ฒ์๊ฐ ์๋ ์ธ์์ ๋ฌ), SyntaxEror(Error ํ์ ํด๋์ค, ๋ฌธ๋ฒ ์๋ฌ) | | ์ซ์, ๋ ์ง | Number, BigInt, Math, Date | | | ํ ์คํธ | String, RegExp | | | ์ธ๋ฑ์ค ์ฝ๋ ์ | Array, ๊ฐ ์ ์๋ฐฐ์ด (Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array) | ๋ฐฐ์ด๊ณผ ๋ฐฐ์ดํ ๊ฐ์ฒด | | ํค ์ฝ๋ ์ | Map, Set, WeakMap, WeakSet | ํค๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋ ์ , Iterable ์ฝ๋ ์ ์ ์ฝ์ ์์๋๋ก ์ํํ ์ ์๋ค. | | ๊ตฌ์กฐํ ๋ฐ์ดํฐ | ArrayBuffer, SharedArrayBuffer, Atomics(โ), DataView(โ), JSON | SharedArrayBuffer (๋นํ์ฑํ ์ด์๐ก), Atomic (์ํ ๋ฏน ์ฐ์ฐ์ ์ ์ ๋ฉ์๋๋ก ์ ๊ณต, SharedArrayBuffer์ ArrayBuffer ๊ฐ์ฒด์ ํค๊ป ์ฌ์ฉ), DataView (์๋์ธx, ArrayBuffer์์ ๋ค์ํ ์ซ์ ์๋ฃํ์ ์ฝ๊ณ ์ฐ๋ ์ ์์ค ์ธํฐํ์ด์ค) | | ์ ์ด ์ถ์ํ ๊ฐ์ฒด | Promise(๋๋ฆฌ์), Generator, GeneratorFunction, AsyncFunction, AsyncGenerator, AsyncGeneratorFunction | Promise (pending, fulfilled, rejceted / Web Worker / settled๋๊ธฐ์์ ๋ฒ์ด๋จ, resolved์ ๊น) | | ๋ฆฌํ๋ ์ | Reflect, Proxy | | | ๊ตญ์ ํ | Intl, Intl.Collator, Intl.DateTimeFormat, Intl.ListFormat, Intl.NumberFormat, Intl.PluralRules. Intl.RelativeTimeFormat. Intl.Locale | ECMAScript ์ฝ์ด์ ์ถ๊ฐ๋ ์ธ์ด ๊ตฌ๋ถ ๊ธฐ๋ฅ |
๐ Mozilla ์ฝ์ด๋ณด๊ธฐ ๐
- Atomics ๊ฐ์ฒด https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Atomics
- SharedArrayBuffer, ArrayBufffer์ ํจ๊ป ์ฌ์ฉ, ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๋ฉ์๋
- DataView()
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/DataView
- ArrayBuffer๋ก ๋ทฐ๋ฅผ ๋ง๋ฆ
- DataView.prototype.buffer: ์ฐธ์กฐํ๋ ArrayBuffer
- DataView.prototype.byteLength: ์์์ ๋ถํฐ์ ๊ธธ์ด
- DataView.prototype.byteOffect: ์์์ ์คํ์
- DataView.prototype.getUint16โฆ ์์์ ๋ถํฐ ์ฃผ์ด์ง ์คํ์ ์์น์ ๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ return
- DataView.prototype.setUnitโฆ ์ ์ฅ
- ์๋์ธ Endian
- https://developer.mozilla.org/ko/docs/Glossary/Endianness
- ๋ฐ์ดํธ ์์, ์ซ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ์ดํธ๋ฅผ ์ปดํจํฐ๊ฐ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ
๋ฆฌํ ์๋์ธ(Intel): 0x78 0x56 0x34 0x12 ๋น ์๋์ธ(๋คํธ์ํฌ ๋ฐ์ดํธ ์์): 0x12 0x34 0x56 0x78 ํผํฉ ์๋์ธ(๊ตฌํ, ๋งค์ฐ ๋๋ฌพ): 0x34 0x12 0x78 0x56
- Promise
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
- api ํต์ ์ .all() ์๋ชป ์ฌ์ฉํ ์ ํธ๋ํฝ ๋ฌธ์ ์์
- allSettled() - ๋ชจ๋ ํ๋ก๋ฏธ์ค ์ฒ๋ฆฌ๊น์ง ๋๊ธฐํ๋ ํ๋ก๋ฏธ์ค ๋ฐํ
- any() - ํ๋๋ผ๋ ์ดํ
- race() - ํ๋๋ผ๋ ์ฒ๋ฆฌ๋ ๋๊น์ง ๋๊ธฐ
- Intl
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl