jQuery.type()


jQuery.type( obj )Returns: Stringversion deprecated: 3.3

Description: Determine the internal JavaScript [[Class]] of an object.

Note: This API has been deprecated in jQuery 3.3.

A number of techniques are used to determine the exact return value for an object. The [[Class]] is determined as follows:

  • If the object is undefined or null, then "undefined" or "null" is returned accordingly.
    • jQuery.type( undefined ) === "undefined"
    • jQuery.type() === "undefined"
    • jQuery.type( window.notDefined ) === "undefined"
    • jQuery.type( null ) === "null"
  • If the argument is either a primitive value or an instance of a standard built-in ECMAScript object, the [[Class]] internal property is used to determine the type. (More details about this technique.)
    • jQuery.type( true ) === "boolean"
    • jQuery.type( new Boolean() ) === "boolean"
    • jQuery.type( 3 ) === "number"
    • jQuery.type( new Number( 3 ) ) === "number"
    • jQuery.type( "test" ) === "string"
    • jQuery.type( new String( "test" ) ) === "string"
    • jQuery.type( function() {} ) === "function"
    • jQuery.type( [] ) === "array"
    • jQuery.type( new Array() ) === "array"
    • jQuery.type( new Date() ) === "date"
    • jQuery.type( new Error() ) === "error" // as of jQuery 1.9
    • jQuery.type( Symbol() ) === "symbol" // as of jQuery 1.9
    • jQuery.type( Object( Symbol() ) ) === "symbol" // as of jQuery 1.12
    • jQuery.type( /test/ ) === "regexp"
  • Everything else returns "object" as its type.

Example:

Find out if the parameter is a RegExp.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.type demo</title>
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
</head>
<body>
Is it a RegExp? <b></b>
<script>
$( "b" ).append( "" + jQuery.type( /test/ ) );
</script>
</body>
</html>

Demo: