With this Node.js operator, we get a string
that indicates the type of a variable. A variable or array element can be passed to typeof
.
For performance, typeof
is a light-weight operation. In benchmarks it appears to execute as fast as a null
check in the Node.js runtime.
Here we have an array with three elements—a string
, a number, and a function. In JavaScript functions too are objects.
typeof
to the page with console.log
. We see the lowercase type strings.typeof
. In this way we can test the types of array elements.// Create test array. var values = ["cat", 100, function(){}]; // Write the result of typeof. for (var i = 0; i < values.length; i++) { console.log("TYPEOF RESULT: " + typeof values[i]); } // Test the elements with typeof. for (var i = 0; i < values.length; i++) { if (typeof values[i] === "string") { console.log("FOUND string"); } else if (typeof values[i] === "number") { console.log("FOUND number"); } else if (typeof values[i] === "function") { console.log("FOUND function"); } }TYPEOF RESULT: string TYPEOF RESULT: number TYPEOF RESULT: function FOUND string FOUND number FOUND function
For arrays, we cannot use a "typeof
array" expression. We must use the Array.isArray
method. We can use isArray
on literal arrays and arrays created with the Array constructor.
var test = [1, 2, 3]; // See if the value is an array. if (Array.isArray(test)) { console.log("ISARRAY"); } if (typeof test === "array") { // This does not work. console.log("ERROR"); } var emptyArray = Array(100); // We can also test an array made with the Array constructor. if (Array.isArray(emptyArray)) { console.log("ISARRAY"); }ISARRAY ISARRAY
With the typeof
operator we get a string
that tells us an object's type. The typeof
operator appears to perform fast in Node.js—about as fast as a null
check.