JavaScript: detekce typu proměnné

Pokud opravdu v dynamciky typovaném jazyku potřebujete znát typ konkrétní proměnné:

typeOf(v)

function typeOf( obj ) {
    return {}
        .toString
        .call( obj )
        .split( ' ' )[ 1 ]
        .slice( 0, -1 )
        .toLowerCase();
}

Test

const values = [
    true,
    10,
    'foo',
    Symbol( 'bar' ),
    null,
    undefined,
    NaN,
    {},
    [],
    function () { },
    new Error(),
    new Date(),
    /a/,
    new Map(),
    new Set(),
    Promise.resolve(),
    function* () { },
    class { },
]

for ( let value of values ) {
    console.log( typeOf( value ) );
}

Výsledek

boolean
number
string
symbol
null
undefined
number
object
array
function
error
date
regexp
map
set
promise
generatorfunction
function