λ°μ΄ν„°μ˜ type을 ν™•μΈν•˜λŠ” λ²•πŸ’‘

λͺ¨λ“  μ’…λ₯˜μ˜ 데이터 νƒ€μž…μ„ λ‹΄κ³ μžˆλŠ” μ•„λž˜μ™€ 같은 객체가 μžˆμŠ΅λ‹ˆλ‹€
μ—¬λŸ¬κ°€μ§€ λ°©λ²•μœΌλ‘œ λ°μ΄ν„°μ˜ νƒ€μž…μ„ ν™•μΈν•΄λ΄…μ‹œλ‹€

  const data = {
    string: "str",
    number: 123,
    boolean: true,
    null: null,
    undefined: undefined,
    symbol: Symbol("symbol"),
    bigint: 0n,
    array: [],
    object: {},
    function: function(){}
  }

🧑typeof

  • κ°€μž₯ ν”ν•˜κ²Œ μ“°μ΄λŠ” νƒ€μž… 선별법인 typeof
  • null, array, objectκ°€ λͺ¨λ‘ "object"둜 λ°˜ν™˜λ˜μ–΄ ꡬ별할 수 μ—†μŒ
  typeof data.number // number
  typeof data.boolean // boolean

  typeof data.null // object

  typeof data.undefined // undefined
  typeof data.symbol // symbol
  typeof data.bigint // bigint

  typeof data.array // object
  typeof data.object // object

  typeof data.function // function

🧑.constructor

  • array와 object의 ꡬ뢄이 κ°€λŠ₯ν•΄μ‘ŒμœΌλ‚˜ nullκ³Ό undefinedμ—μ„œ μ—λŸ¬κ°€ 남
    ==> array와 objectλ₯Ό ꡬ뢄 ν•  λ•Œ μ‚¬μš© ν•  수 있음
  data.string.constructor // String
  data.number.constructor // Number
  data.boolean.constructor // Boolean

  data.null.constructor // TypeError!!
  data.undefined.constructor // TypeError!!

  data.symbol.constructor // Symbol
  data.bigint.constructor // BigInt
  data.array.constructor // Array
  data.object.constructor // Object
  data.function.constructor // Function

🧑Object.prototype.toString.call()

  • λͺ¨λ“  λ°μ΄ν„°νƒ€μž…μ˜ 선별이 κ°€λŠ₯ν•œ ν•¨μˆ˜λ₯Ό 생성
  function typeCheck(data) {
    return Object.prototype.toString.call(data).slice(8, -1);
  }
  • ν•΄λ‹Ή ν•¨μˆ˜μ— 데이터λ₯Ό λ„£μœΌλ©΄ [object νƒ€μž…] 의 ν˜•νƒœλ‘œ λ°˜ν™˜μ΄ 되며
    slice()에 μ˜ν•΄ [object ] λ₯Ό μž˜λΌλ‚΄κ³  νƒ€μž…λ§Œ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜λœλ‹€

  • λͺ¨λ“  λ°μ΄ν„°νƒ€μž… 선별 κ°€λŠ₯

  typeCheck(data.string)  // "String"
  typeCheck(data.number) // "Number"
  typeCheck(data.boolean) // "Boolean"
  typeCheck(data.null) // "Null"
  typeCheck(data.undefined) // "Undefined"
  typeCheck(data.symbol) // "Symbol"
  typeCheck(data.bigint) // "BigInt"
  typeCheck(data.array) // "Array"
  typeCheck(data.object) // "Object"
  typeCheck(data.function) // "Function"
profile
ν”„λ‘ νŠΈμ—”λ“œ 개발자 μ„±μž₯일기 πŸ’­

0개의 λŒ“κΈ€