//๋ฐ์ดํฐ ํ์
ํ์ธ
// console.log(typeof a)
// ๊ทผ๋ฐ ์ด๊ฑธ๋ก๋ null, ๋ฐฐ์ด[] ๊ฐ์ฒด{} ๋ ํ์ธํ์ง ๋ชปํ๋ค.
// Js์์๋ ํจ์๋ ํ์
์ผ๋ก ์น๋ค.
console.log(typeof 'hello' === 'string')
console.log(typeof 123 === 'number')
console.log(typeof false === 'boolean')
console.log(typeof undefined === 'undefined')
console.log(typeof null ==='object')
console.log(typeof[] === 'object')
console.log(typeof{} === 'object')
console.log(typeof function () {} ==='function')
// [] ๋ฐฐ์ด์ Array๋ผ๋ ํจ์์์ ํ์ฅ๋์ด ๋ง๋ค์ด์ง ๊ฒ์ด๋ค.
// [].constructor ๋ ๋ฐฐ์ด์ ์ต๊ณ ์กฐ์์ด ๋ฌด์์ธ์ง ์๋ ค์ค๋ค. -> ์กฐ์์ Array(){}๋ผ๋ ํจ์์๋ค.
// ๋ฐ๋ผ์ [].constructor๋ Array ์์ผ๋ก ๋ฐ์ ๊ฐ์ ์ฐธ์ด๋ค.
// ํจ์ ์์ฒด๋ฅผ ๋น๊ตํ ๋๋ "" ๊ฐ์ ์ ๋ค ํ์ ์๋ค.
console.log([].constructor ==Array)
// ๊ฐ์ฒด๋ ๋ง์ฐฌ๊ฐ์ง๋ก .constructor๋ฅผ ์ฐ๋ฉด Object๋ผ๋ ํจ์์์ ์ ์ ์๋ค.
console.log({}.constructor == Object)
// console.log(null.constructor) null์ ํจ์๊ฐ ์๋๊ธฐ์ ํด๋น ์คํฌ๋ก ๋ฌด์จ ํ์
์ธ์ง ์์๋ด์ง ๋ชปํจ.
// console.log(Object.prototype.toString.call(null).slice(8, -1) === 'Null')
console.log(checkType('Hello'))
console.log(checkType(123))
console.log(checkType(false))
console.log(checkType([]))
console.log(checkType({}))
console.log(checkType(function () {}))
function checkType (data) {
return Object.prototype.toString.call(data).slice(8,-1)
}
0