Skip to content

Instantly share code, notes, and snippets.

@saitamanodoruji
Last active December 12, 2015 10:39
Show Gist options
  • Save saitamanodoruji/4760801 to your computer and use it in GitHub Desktop.
Save saitamanodoruji/4760801 to your computer and use it in GitHub Desktop.
check typeof and instanceof with String, Array, Function, Object, Number, Boolean, RegExp, undefined, null
//// code ////
// typeof and instanceof
var typeof_and_instanceof = function(a) {
var mes = []
mes.push('typeof(' + a[0] + ') : ' + (typeof(a[1])))
mes.push(a[0] + ' instanceof String : ' + (a[1] instanceof String))
mes.push(a[0] + ' instanceof Array : ' + (a[1] instanceof Array))
mes.push(a[0] + ' instanceof Function : ' + (a[1] instanceof Function))
mes.push(a[0] + ' instanceof Object : ' + (a[1] instanceof Object))
mes.push(a[0] + ' instanceof Number: ' + (a[1] instanceof Number))
mes.push(a[0] + ' instanceof Boolean: ' + (a[1] instanceof Boolean))
mes.push(a[0] + ' instanceof RegExp: ' + (a[1] instanceof RegExp))
mes.push('')
return mes
}
// String, Array, Function, Object, Number, Boolean, RegExp, undefined, null
var safonbrun = [
['\'\'', ''],
['new String()', new String()],
['[]', []],
['new Array()', new Array()],
['function(){}', function(){}],
['new Function()', new Function()],
['{}', {}],
['new Object()', new Object()],
['0', 0],
['new Number()', new Number()],
['false', false],
['new Boolean()', new Boolean()],
['/^$/', /^$/],
['new RegExp()', new RegExp()],
['undefined', undefined],
['null', null]
]
console.log('\n' + safonbrun.reduce(function(pval, cval, ind, arr) {
var mes = pval
return mes.concat(typeof_and_instanceof(cval))
}, []).join('\n'))
//// output ////
// typeof('') : string
// '' instanceof String : false
// '' instanceof Array : false
// '' instanceof Function : false
// '' instanceof Object : false
// '' instanceof Number: false
// '' instanceof Boolean: false
// '' instanceof RegExp: false
//
// typeof(new String()) : object
// new String() instanceof String : true
// new String() instanceof Array : false
// new String() instanceof Function : false
// new String() instanceof Object : true
// new String() instanceof Number: false
// new String() instanceof Boolean: false
// new String() instanceof RegExp: false
//
// typeof([]) : object
// [] instanceof String : false
// [] instanceof Array : true
// [] instanceof Function : false
// [] instanceof Object : true
// [] instanceof Number: false
// [] instanceof Boolean: false
// [] instanceof RegExp: false
//
// typeof(new Array()) : object
// new Array() instanceof String : false
// new Array() instanceof Array : true
// new Array() instanceof Function : false
// new Array() instanceof Object : true
// new Array() instanceof Number: false
// new Array() instanceof Boolean: false
// new Array() instanceof RegExp: false
//
// typeof(function(){}) : function
// function(){} instanceof String : false
// function(){} instanceof Array : false
// function(){} instanceof Function : true
// function(){} instanceof Object : true
// function(){} instanceof Number: false
// function(){} instanceof Boolean: false
// function(){} instanceof RegExp: false
//
// typeof(new Function()) : function
// new Function() instanceof String : false
// new Function() instanceof Array : false
// new Function() instanceof Function : true
// new Function() instanceof Object : true
// new Function() instanceof Number: false
// new Function() instanceof Boolean: false
// new Function() instanceof RegExp: false
//
// typeof({}) : object
// {} instanceof String : false
// {} instanceof Array : false
// {} instanceof Function : false
// {} instanceof Object : true
// {} instanceof Number: false
// {} instanceof Boolean: false
// {} instanceof RegExp: false
//
// typeof(new Object()) : object
// new Object() instanceof String : false
// new Object() instanceof Array : false
// new Object() instanceof Function : false
// new Object() instanceof Object : true
// new Object() instanceof Number: false
// new Object() instanceof Boolean: false
// new Object() instanceof RegExp: false
//
// typeof(0) : number
// 0 instanceof String : false
// 0 instanceof Array : false
// 0 instanceof Function : false
// 0 instanceof Object : false
// 0 instanceof Number: false
// 0 instanceof Boolean: false
// 0 instanceof RegExp: false
//
// typeof(new Number()) : object
// new Number() instanceof String : false
// new Number() instanceof Array : false
// new Number() instanceof Function : false
// new Number() instanceof Object : true
// new Number() instanceof Number: true
// new Number() instanceof Boolean: false
// new Number() instanceof RegExp: false
//
// typeof(false) : boolean
// false instanceof String : false
// false instanceof Array : false
// false instanceof Function : false
// false instanceof Object : false
// false instanceof Number: false
// false instanceof Boolean: false
// false instanceof RegExp: false
//
// typeof(new Boolean()) : object
// new Boolean() instanceof String : false
// new Boolean() instanceof Array : false
// new Boolean() instanceof Function : false
// new Boolean() instanceof Object : true
// new Boolean() instanceof Number: false
// new Boolean() instanceof Boolean: true
// new Boolean() instanceof RegExp: false
//
// typeof(/^$/) : object
// /^$/ instanceof String : false
// /^$/ instanceof Array : false
// /^$/ instanceof Function : false
// /^$/ instanceof Object : true
// /^$/ instanceof Number: false
// /^$/ instanceof Boolean: false
// /^$/ instanceof RegExp: true
//
// typeof(new RegExp()) : object
// new RegExp() instanceof String : false
// new RegExp() instanceof Array : false
// new RegExp() instanceof Function : false
// new RegExp() instanceof Object : true
// new RegExp() instanceof Number: false
// new RegExp() instanceof Boolean: false
// new RegExp() instanceof RegExp: true
//
// typeof(undefined) : undefined
// undefined instanceof String : false
// undefined instanceof Array : false
// undefined instanceof Function : false
// undefined instanceof Object : false
// undefined instanceof Number: false
// undefined instanceof Boolean: false
// undefined instanceof RegExp: false
//
// typeof(null) : object
// null instanceof String : false
// null instanceof Array : false
// null instanceof Function : false
// null instanceof Object : false
// null instanceof Number: false
// null instanceof Boolean: false
// null instanceof RegExp: false
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment