λͺ¨λ μ’ λ₯μ λ°μ΄ν° νμ μ λ΄κ³ μλ μλμ κ°μ κ°μ²΄κ° μμ΅λλ€
μ¬λ¬κ°μ§ λ°©λ²μΌλ‘ λ°μ΄ν°μ νμ μ νμΈν΄λ΄ μλ€const data = { string: "str", number: 123, boolean: true, null: null, undefined: undefined, symbol: Symbol("symbol"), bigint: 0n, array: [], object: {}, function: function(){} }
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
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
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"