JavaScript Type Determination

The tables below show some common types of objects and what they appear to be via different mechanisms in your browser:

** NO JavaScript Enabled **

Simple Objects/Variables

Object / Code typeof a a.toString() Expected instanceof
var a = true;
Boolean
var a = false;
Boolean
var a = 10;
Number
var a = 10.0;
Number
var a = "10.0";
String
var a = "hello world";
String
var a = 'hello world';
String
var a = 'c';
String
var a = [];
Array
var a = [1,2,3];
Array
function getArguments(){
  return arguments;
}
var a = getArguments();
Array
function getArguments(foo, bar, baz){
  return arguments;
}
var a = getArguments(1,2,3);
Array
function getArguments(){
  return arguments;
}
var a = getArguments(1,2,3);
Array
var a = {};
Object
var a = {
  foo: 10,
  bar: "baz",
  isAlive: false
};
Object
var a = function(){};
Function
var a = function(){
  console.log("in function a");
};
Function
function a(){};
Function

Built-in Complex-ish Types and Other Stuff

Object / Code typeof a a.toString() Expected instanceof
var a = new String();
String
var a = new Array();
Array
var a = new Date();
Date
var a = Math;
Object
var a = /^$/;
RegExp
var a = new RegExp("^$");
RegExp
var a = setTimeout(function(){}, 100);
Number

DOM Objects

Object / Code typeof a a.toString() Expected instanceof
var a = document;
HTMLDocument
var a = window;
Window
var a = navigator;
Navigator
var a = document.createElement("table");
HTMLTableElement
var a = document.createElement("div");
HTMLDivElement
var a = document.createElement("p");
HTMLParagraphElement
var a = document.createElement("h1");
HTMLHeadingElement
var a = document.createElement("h2");
HTMLHeadingElement
var a = document.createElement("object");
HTMLObjectElement
var a = document.createElement("embed");
HTMLEmbedElement
var a = document.createElement("script");
HTMLScriptElement
var a = document.createElement("style");
HTMLStyleElement

Class Objects

Object / Code typeof a a.toString() Expected instanceof
function MyClass(){}
var a = new MyClass();
MyClass
function MyClass(){}
var a = MyClass.prototype;
Object
function MyClass(){
    this.fn = function(){};
}
var b = new MyClass();
var a = b.fn;
Function
function MyClass(){
}
MyClass.prototype.fn = function(){};
var b = new MyClass();
var a = b.fn;
Function
var myObj = {
    fn: function(){}
}
var a = myObj.fn;
Function

Null/Undefined and Error Objects

Object / Code typeof a a.toString() Expected instanceof
var a = null;
Object
var a = undefined;
Object
// leave empty
Object
var a = new Error("Uh Oh.");
Error