[JS] ํ์ ์ด๋ฆ์ ๋ฐํํ๋ getType ์ ํธ ํจ์
value
๋ฅผ ์ธ์๋ก ๋ฐ์ ํด๋นํ๋ ํ์
์ด๋ฆ(์๋ฌธ์)์ ๋ฐํํ๋ getType
ํจ์. ํ๋ก์ ํธ ๊ณตํต ์ ํธ๋ฆฌํฐ ํ์ผ์ ์ถ๊ฐํด๋๊ณ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๊ฒ ์ธ ์ ์๋ค.
const getType = (value: any) => {
if (value === undefined) return 'undefined';
if (value === null) return 'null';
return value.constructor.name.toLowerCase();
};
getType(8); // 'number'
getType([8]); // 'array'
getType(() => {}); // 'function'
getType('8'); // 'string'
getType({ id: 8 }); // 'object'
getType(new Set()); // 'set'
getType(new Map()); // 'map'
getType(true); // 'boolean'
๐ก ๋ฐฐ์ด, ๊ฐ์ฒด, ์ซ์, ๋ฌธ์์ด ๋ฑ ๋ชจ๋ ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑ๋ ์ธ์คํด์ค๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ด๋ฌํ ์ธ์คํด์ค๋ ์์ ์ ํ๋กํ ํ์ ๊ฐ์ฒด์ ์๋ constructor ํ๋กํผํฐ์ ์ ๊ทผํ ์ ์๋ค.
ํ์
์ด๋ฆ์ ๊ฐ์ ธ์ค๋ ์๋ฆฌ๋ ๊ฐ๋จํ๋ค. Array
, Number
, String
๋ฑ ๊ฐ ํ์
์ ์์ฑ์ ํจ์๋ name
ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋๋ฐ ์ด๋ฅผ ์๋ฌธ์๋ก ๋ณํํด์ ๋ฐํํ๋ ๊ฒ(typeof
์ฐ์ฐ์๋ ์๋ฌธ์๋ฅผ ๋ฐํํ๋ค). undefined
์ null
์ ์์ฑ์ ํจ์๊ฐ ์์ผ๋ฏ๋ก ๋ณ๋ ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค.
const num = 10
console.log(num.constructor === Number) // true
console.dir(Number) // ์๋ ์ด๋ฏธ์ง ์ฐธ๊ณ
console.log(Number.name) // 'Number'
console.log(Array.name) // 'Array'
console.log(Object.name) // 'Object'
console.log(Function.name) // 'Function'
console.log(Error.name) // 'Error'
console.log(Date.name) // 'Date'
// ...
์ฐธ๊ณ ๋ก null
, ๋ฐฐ์ด, ๊ฐ์ฒด๋ฅผ typeof
์ฐ์ฐ์๋ก ๊ฒ์ฌํด๋ณด๋ฉด ๋ชจ๋ 'object'
๋ฅผ ๋ฐํํ๋ค
typeof null; // 'object'
typeof {}; // 'object'
typeof []; // 'object'
typeof undefined; // 'undefined'
typeof NaN; // 'number'
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[JS/React] input ํ๋์ ์ซ์๋ง ์ ๋ ฅ ํ์ฉํ๊ธฐ (ํ๊ธ ์ ๋ ฅ ๋ฐฉ์ง)
[JS/React] input ํ๋์ ์ซ์๋ง ์ ๋ ฅ ํ์ฉํ๊ธฐ (ํ๊ธ ์ ๋ ฅ ๋ฐฉ์ง)
2024.05.16 -
[JS] Promise ํ๋ก๋ฏธ์ค ๋ณ๋ ฌ์ฒ๋ฆฌ ๋ฉ์๋ ํบ์๋ณด๊ธฐ
[JS] Promise ํ๋ก๋ฏธ์ค ๋ณ๋ ฌ์ฒ๋ฆฌ ๋ฉ์๋ ํบ์๋ณด๊ธฐ
2024.05.14 -
[Next.js] ๋ผ์ฐํธ ๋ณ๊ฒฝ / ์๋ก๊ณ ์นจ ์ทจ์ํ๊ธฐ (๋ค๋น๊ฒ์ด์ ๊ฐ๋)
[Next.js] ๋ผ์ฐํธ ๋ณ๊ฒฝ / ์๋ก๊ณ ์นจ ์ทจ์ํ๊ธฐ (๋ค๋น๊ฒ์ด์ ๊ฐ๋)
2024.05.14 -
[JS] API ์์ฒญ / ๋น๋๊ธฐ ์์ ์ทจ์ํ๊ธฐ - Abort Controller
[JS] API ์์ฒญ / ๋น๋๊ธฐ ์์ ์ทจ์ํ๊ธฐ - Abort Controller
2024.05.14