jQuery.type()

jQuery.type( obj )返回类型:String

描述:确定一个对象的内部JavaScript[[Class]]。

一些技术可以用来针对一个对象精确确定返回值。按以下方式确定[[Class]]:

  • 如果对象是undefined或null,则相应地返回"undefined"或"null"。
    • jQuery.type( undefined ) === "undefined"
    • jQuery.type() === "undefined"
    • jQuery.type( window.notDefined ) === "undefined"
    • jQuery.type( null ) === "null"
  • 如果参数是一个原始值,或标准内置ECMAScript对象的一个实例,则[[Class]]内部属性用来确定此类型。(关于此技术的更多细节。
    • 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"
  • 一切别的东西都返回"object"作为它的类型。

示例:

检查参数是不是一个正则表达式。

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-1.10.2.js"></script>
</head>
<body>
Is it a RegExp? <b></b>
<script>
$( "b" ).append( "" + jQuery.type( /test/ ) );
</script>
</body>
</html>

演示: