typeof(/ \ s /)和$ .type(/ \ s /)之间的区别

时间:2016-07-25 09:25:52

标签: javascript jquery

当我尝试时,我不明白为什么它会抛出信息object



alert(typeof(/\s/))




再次检查,我做了一个改变:



alert($.type(/\s/))

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

我们现在已经regexp

所以,我的问题是:为什么typeof(/\s/)代替object而不是stringregexp在javascript中?

1 个答案:

答案 0 :(得分:2)

正则表达式是一个“对象”,因为它是一个对象,就像Date一样。 正则表达式是描述字符模式的对象。

如果您将typeofobject一起使用,则会获得"object"

其他一些例子:

typeof []; // "object"
typeof null; // "object"
typeof /regex/ // "object"
typeof new String(""); // "object"

使用$.type

如果参数是原始值或标准内置ECMAScript对象的实例,则[[Class]]内部属性用于确定类型。

示例:

jQuery.type( /test/ ) === "regexp"

<强> Documentation on $.type