JavaScript: typeof operator


The typeof operator is used to get the data type (returns a string) of its operand. The operand can be either a literal or a data structure such as a variable, a function, or an object. The operator returns the data type.


typeof operand
typeof (operand)

There are six possible values that typeof returns: object, boolean, function, number, string, and undefined. The following table summarizes possible values returned by the typeof operator.

Type of the operand Result
Object "object"
boolean "boolean"
function "function"
number "number"
string "string"
undefined "undefined"

Examples of typeof operator: string

typeof ""
typeof "abc"
typeof (typeof 1)

Examples of typeof operator: number

typeof 17
typeof -14.56
typeof 4E-3
typeof Infinity
typeof Math.LN2
typeof NaN

Examples of typeof operator: boolean

typeof false
typeof true

Examples of typeof operator: function

typeof Math.tan
typeof function(){}

Examples of typeof operator: object

typeof {a:1}
typeof new Date()
typeof null
typeof /a-z/
typeof Math
typeof JSON

Examples of typeof operator: undefined

typeof undefined
typeof abc

More examples on typeof operator

typeof(4+7);  //returns number
typeof("4"+"7"); //returns string
typeof(4*"7"); //returns number
typeof(4+"7"); //returns string

What is the difference between typeof myvar and typeof(myvar) in JavaScript?

There is absolutely no difference between typeof myvar and typeof(myvar). The output of the following codes will be same i.e. "undefined".

alert(typeof myvar);


How to detect an undefined object property in JavaScript?

The following method is the best way to detect an undefined object property in JavaScript.

if (typeof xyz === "undefined")
alert("xyz is undefined");

How to check whether a variable is defined in JavaScript or not?

The following method is the best way to detect an undefined object property in JavaScript.

if (typeof xyz === "undefined")
alert("Varaible is undefined");
alert("Variable is defined");

The following example tests the data type of variables.

JS Code

var index = 8;
  var result = (typeof index === 'number');
  // Output: true
var description = "w3resource";
  var result = (typeof description === 'string');
  // Output: true

Previous: JavaScript: this Operator
Next: JavaScript: void operator

Test your Programming skills with w3resource's quiz.

JavaScript: Tips of the Day

What does "use strict" do in JavaScript, and what is the reasoning behind it?

Strict Mode is a new feature in ECMAScript 5 that allows you to place a program, or a function, in a "strict" operating context. This strict context prevents certain actions from being taken and throws more exceptions.


Strict mode helps out in a couple ways:

  • It catches some common coding bloopers, throwing exceptions.
  • It prevents, or throws errors, when relatively "unsafe" actions are taken (such as gaining access to the global object).
  • It disables features that are confusing or poorly thought out.

Also note you can apply "strict mode" to the whole file... Or you can use it only for a specific function (still quoting from John Resig's article):

// Non-strict code...

  "use strict";

  // Define your library strictly...

// Non-strict code... 

Which might be helpful if you have to mix old and new code ;-) So, I suppose it's a bit like the "use strict" you can use in Perl (hence the name?): it helps you make fewer errors, by detecting more things that could lead to breakages. Strict mode is now supported by all major browsers. Inside native ECMAScript modules (with import and export statements) and ES6 classes, strict mode is always enabled and cannot be disabled.

Ref: https://bit.ly/2BqznAw