0% found this document useful (0 votes)
24K views6 pages

What Is The Best Way To Check Variable Type in Javascript - Stack Overflow

Uploaded by

Saleem Shan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24K views6 pages

What Is The Best Way To Check Variable Type in Javascript - Stack Overflow

Uploaded by

Saleem Shan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

2/17/2021 what is the best way to check variable type in javascript - Stack Overflow

what is the best way to check variable type in javascript


Asked 7 years, 7 months ago Active 8 months ago Viewed 31k times

<script type="text/javascript">
function saveName (firstName) {
15 function capitalizeName () {
return firstName.toUpperCase();
}
var capitalized = capitalizeName();console.log(capitalized instanceof String);
return capitalized;
}
4 console.log(saveName("Robert")); // Returns "ROBERT"
</script>

Question:

I want to check the type of capitalized , so I use capitalized instanceof String ? But it shows:
false in console, I do not want to try capitalized instanceof Function , Object ...It will take too
much time, so what is the best way to detect a variable type?

javascript

Share Improve this question Follow asked Jul 3 '13 at 5:42


user2507818
1,879 4 14 25

1 Because a string literal isn't an object of String type. See typeof capitalized – zerkms Jul 3 '13 at
5:44

6 Answers Active Oldest Votes

The best way is to use the typeof keyword.

27 typeof "hello" // "string"

The typeof operator maps an operand to one of six values: "string" , "number" , "object" ,
"function" , "undefined" and "boolean" . The instanceof method tests if the provided function's
prototype is in the object's prototype chain.

This Wikibooks article along with this MDN articles does a pretty good job of summing up
JavaScript's types.
Join Stack Overflow to learn, share knowledge, and build your career. Sign up

https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 1/6


2/17/2021 what is the best way to check variable type in javascript - Stack Overflow

Share Improve this answer Follow edited Jul 8 '13 at 4:09 answered Jul 3 '13 at 5:45
LandonSchropp
8,902 16 71 142

typeof new String("hello") == "object" but it can benefit from all the same characteristics of
string . It would be safest to say typeof x == "string" || x instance of String – Brian Nickel ♦ Jul
3 '13 at 5:49

I suppose you're correct, although in practice I almost never see new String("hello") used. –
LandonSchropp Jul 3 '13 at 5:55

function is not a built-in type. A function is an object. And null is a type too. See ECMAScript specs,
sections 8 and 11.4.3 – a better oliver Jul 3 '13 at 6:14

use typeof();

2 example:

> typeof "foo"


"string"
> typeof true
"boolean"
> typeof 42
"number"

So you can do:

if(typeof bar === 'string') {


//whatever
}

Keep in mind that, typeof is only good for returning the "primitive" types, number, boolean, object,
string. You can also use instanceof to test if an object is of a specific type.

function MyObj(prop) {
this.prop = prop;
}

var obj = new MyObj(10);

console.log(obj instanceof MyObj && obj instanceof Object); // outputs true

Share Improve this answer Follow edited Jul 3 '13 at 5:53 answered Jul 3 '13 at 5:46
Fasil kk
2,006 13 23

typeof capitalized == 'string'


Join Stack Overflow to learn, share knowledge, and build your career. Sign up

https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 2/6


2/17/2021 what is the best way to check variable type in javascript - Stack Overflow

Share Improve this answer Follow answered Jul 3 '13 at 5:49


1
vladkras
13.7k 4 37 51

The best way is using typeof

1 typeof "blahha"

I made a function with help of jQuery library code, jQuery library type method github link .

var getType = (function() {

var objToString = ({}).toString ,


typeMap = {},
types = [
"Boolean",
"Number",
"String",
"Function",
"Array",
"Date",
"RegExp",
"Object",
"Error"
];

for ( var i = 0; i < types.length ; i++ ){


typeMap[ "[object " + types[i] + "]" ] = types[i].toLowerCase();
};

return function( obj ){


if ( obj == null ) {
return String( obj );
}
// Support: Safari <= 5.1 (functionish RegExp)
return typeof obj === "object" || typeof obj === "function" ?
typeMap[ objToString.call(obj) ] || "object" :
typeof obj;
}
}());

You can call it as getType("Hello")

Share Improve this answer Follow edited Jul 3 '13 at 6:24 answered Jul 3 '13 at 5:51
rab
3,902 1 27 39

The getVarType method (below) works for almost all variables. Check out this fiddle. It first uses
the very fast typeof for cases where the results are reliable. Then it uses a more expensive
1 toString method for other cases. Finally, if it is dealing with a named object (as returned by
Join Stack Overflow to learn, share knowledge, and build your career. Sign up

https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 3/6


2/17/2021 what is the best way to check variable type in javascript - Stack Overflow

Firefox for objects like document.location) it checks for Array-like objects and reports them as
arrays.

In comparison, typeof is embarrassingly poor. typeof([]) returns 'object', typeof(new Number())


returns object. It also returns 'object' for many other variables that aren't (for practical purposes)
objects. See the fiddle results for a comparison.

// Begin public utility /getVarType/


// Returns 'Function', 'Object', 'Array',
// 'String', 'Number', 'Null', 'Boolean', or 'Undefined'
//
getVarType = (function () {
var typeof_map = {
'undefined' : 'Undefined',
'boolean' : 'Boolean',
'number' : 'Number',
'string' : 'String',
'function' : 'Function',

'Undefined' : 'Undefined',
'Null' : 'Null',
'Boolean' : 'Boolean',
'Number' : 'Number',
'String' : 'String',
'Function' : 'Function',
'Array' : 'Array',
'StyleSheetList' : 'Array'
};

return function( data ) {


var type, type_str;

if ( data === null ) { return 'Null'; }


if ( data === undefined ) { return 'Undefined'; }

type = typeof( data );


type_str = typeof_map[ type ];

if ( type_str ) { return type_str; }

type = {}.toString.call( data ).slice( 8, -1 );


return typeof_map[ type ]
|| ( data instanceof Array ? 'Array' :
( data.propertyIsEnumerable(0) && data.length !== undefined
? 'Array' : 'Object' )
);
}

The only possible failure mode happens if you are testing a named array that is empty (e.g. an
empty enumerable DOM object besides the StyleSheetList). But on could add those to the
type_of_map as needed.

I hope that helps!

Share Improve this answer Follow edited Jul 11 '13 at 20:36 answered Jul 11 '13 at 1:27
Michael Mikowski
1,229 1 10 19
Join Stack Overflow to learn, share knowledge, and build your career. Sign up

https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 4/6


2/17/2021 what is the best way to check variable type in javascript - Stack Overflow

ES-Next version with support BigInt & Symbol

0
"use strict";

/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-06-09
* @modified
*
* @description js data type checker
* @augments
* @example
* @link
*
*/

const dataTypeChecker = (data, debug = false) => {


const log = console.log;
let result = ``;
const typeString = Object.prototype.toString.call(data);
result = typeString.replace(/\[object /gi, ``).replace(/\]/gi, ``);
if(debug) {
log(`true type`, result)
}
return result;
};

export default dataTypeChecker;

export {
dataTypeChecker,
};

test

const dataTypeChecker = (data, debug = false) => {


const log = console.log;
let result = ``;
const typeString = Object.prototype.toString.call(data);
// const typeString = Object.prototype.toString.apply(data);
result = typeString.replace(/\[object /gi, ``).replace(/\]/gi, ``);
if(!debug) {
log(`true type`, result)
}
return result;
};

Join Stack Overflow to learn, share knowledge, and build your career. Sign up
const obj = {};
https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 5/6
2/17/2021 what is the best way to check variable type in javascript - Stack Overflow
const func = () => {};

dataTypeChecker(NaN)
//"[object Number]"
dataTypeChecker(undefined)
//"[object Undefined]"
dataTypeChecker(true)
//"[object Boolean]"
dataTypeChecker({})
//"[object Object]"
dataTypeChecker(func)
//"[object Function]"
dataTypeChecker(obj)
//"[object Object]"
dataTypeChecker(Symbol())
//"[object Symbol]"
dataTypeChecker(null)
//"[object Null]"
dataTypeChecker(123)
//"[object Number]"
dataTypeChecker(BigInt(1n))
//"[object BigInt]"

Share Improve this answer Follow answered Jun 9 '20 at 13:47


xgqfrms
5,002 1 31 41

Join Stack Overflow to learn, share knowledge, and build your career. Sign up

https://stackoverflow.com/questions/17440517/what-is-the-best-way-to-check-variable-type-in-javascript#:~:text=The best way is to use the typeof key… 6/6

You might also like