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