How to check the type of a variable or object in JavaScript?


JavaScript is a loosely typed programming language, meaning there is no such rule to declare the variable type. A variable can store multiple data types in a program, so it is essential to understand the variable type before using it. In JavaScript, we can use the typeof operator to check the type of a variable or object. The typeof operator takes a variable and returns its type in a string format.

In addition, to the typeof operator, JavaScript also provides the instanceof operator to check the type of a variable or object. The instanceof operator accepts two arguments: the object to check and the constructor function of the type you wish to check for. The operator will return true if the constructor function is of the object type.

Using typeof operator

The typeof operator is a unary operator that takes one argument and returns a string indicating the argument's type. For example, the typeof operator can be used to check the type of a variable or object.

Syntax

typeof variable_name 

In the above syntax, variable_name s the name of a variable whose type you want to determine.

The typeof operator can return one of the following strings −

  • "number" for numbers

  • "string" for strings

  • "boolean" for booleans

  • "undefined" for undefined values

  • "object" for objects (including arrays and functions)

  • "symbol" for symbols (new in ECMAScript 2015)

Example

In this example, we used the typeof operator to check the type of a variable or object in JavaScript. We declare multiple variables in different types such as number, string, boolean, etc. We showed these variables on the web page. We used a click event handler on a button to check the variable's type. Users can see all the variables with their respective types on the web page whenever they click the button. The typeof operator helps determine the type of a variable or object before performing specific operations. For example, you might use it to ensure that a variable is a number before performing arithmetic or that a variable is a string before concatenating it with another string.

<html>
<body>
   <h2>Checking the <i> type of a variable or object </i> in JavaScript</h2>
   <h4>The variables are as follows:</h4>
   <ul>
      <li>let num = 10</li>
      <li>let str = "Hello"</li>
      <li>let bool = true</li>
      <li>let un</li>
      <li>let n = null</li>
      <li>let arr = [1, 2, 3]</li>
      <li>let func = function () {}</li>
   </ul>
   <button onclick = "checkType()"> Check Type </button>
   <div id = "root"> </div>
   <script>
      let num = 10
      let str = 'Hello'
      let bool = true
      let un
      let n = null
      let arr = [1, 2, 3]
      let func = function () {}
      let root = document.getElementById('root')
      function checkType() { 
         root.innerHTML = '<h4>The types of variables are as follows:</h4>'
         root.innerHTML += '<ul> <li> let num = 10 is a ' + typeof num + ' </li> <li> let str = "Hello" is a ' + typeof str + ' </li> <li> let bool = true is a ' + typeof bool + ' </li> <li> let un is a ' + typeof un + ' </li> <li> let n = null is a ' + typeof n + ' </li> <li> let arr = [1, 2, 3] is a ' + typeof arr + ' </li> <li> let func = function () {} is a ' + typeof func + ' </li> </ul> '
      }
   </script>
</body>
</html> 

Using instanceof operator

In JavaScript, the instanceof operator is used to determine the type of an object during runtime. It returns a boolean result indicating whether the object is an instance of a specific class.

Syntax

object_name instanceof object_constructor 

In the above syntax, object_name is the name of an object whose type you want to determine.

Example

In this example, we used the instanceof operator to check the type of a variable or object in JavaScript. We declare a string type variable with a String class constructor and a custom class object, ‘myClassObject’, which is an object of ‘myClass’, and also show them on the web page. We used a click event handler on a button to check the object's type and showed them on the webpage.

<html>
<body>
   <h2>Checking the <i> type of a variable or object </i> in JavaScript</h2>
   <h4>The object variables are as follows:</h4>
   <ul> 
      <li>let str = new String('Hello World!')</li>
      <li>let myClassObject = new MyClass()</li>
   </ul>
   <button onclick = "checkType()"> Check Type </button>
   <div id = "root"> </div>
   <script>
      let str = new String('Hello World!')
      class MyClass {}
      let myClassObject = new MyClass()
      let root = document.getElementById('root')
      function checkType() {
         root.innerHTML = '<h4> The types of objects using instanceof operator: </h4>'
         root.innerHTML += '<ul> <li> str is an instance of String: ' + (str instanceof String) + ' </li> <li> str is an instance of MyClass: ' + (str instanceof MyClass) + ' </li> </ul>'
         root.innerHTML += ' <ul> <li> myClassObject is an instance of String: ' + (myClassObject instanceof String) + ' </li> <li> myClassObject is an instance of MyClass: ' + (myClassObject instanceof MyClass) + ' </li> </ul>'
      }
   </script>
</body>
</html> 

The typeof and instanceof operators may only sometimes return the expected result when used with certain objects. For example, the typeof operator returns "object" for arrays, even though they are a type of object in JavaScript. To properly check if a value is an array, you can use the Array.isArray() method.

Updated on: 08-Feb-2023

10K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements