当我尝试时,我不明白为什么它会抛出信息object
:
alert(typeof(/\s/))

再次检查,我做了一个改变:
alert($.type(/\s/))

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
我们现在已经regexp
。
所以,我的问题是:为什么typeof(/\s/)
代替object
而不是string
或regexp
在javascript中?
答案 0 :(得分:2)
正则表达式是一个“对象”,因为它是一个对象,就像Date一样。 正则表达式是描述字符模式的对象。
如果您将typeof
与object
一起使用,则会获得"object"
其他一些例子:
typeof []; // "object"
typeof null; // "object"
typeof /regex/ // "object"
typeof new String(""); // "object"
使用$.type
如果参数是原始值或标准内置ECMAScript对象的实例,则[[Class]]
内部属性用于确定类型。
示例:
jQuery.type( /test/ ) === "regexp"
<强> Documentation on $.type 强>