2

我只是in在 Javascript 中测试运算符。当我运行类似的东西时console.log("cookie" in document),它会记录true,但是当我执行console.log("cookie" in "cookiejar")或将cookiejar分配给变量a然后执行console.log("cookie" in a)时,我收到一条错误语句TypeError: invalid 'in'operand a。谁能告诉我为什么会这样?

4

2 回答 2

6

in操作员不会按照您 的想法去做。a in b告诉您给定对象b是否具有名为a的属性。

您不能用于in搜索字符串中的字符。为此使用indexOf

'cookiejar'.indexOf('cookie')

请注意,in 运算符与语句完全分离且完全无关。for-in

于 2012-12-17T19:35:09.390 回答
4

in仅适用于对象,不适用于字符串。

从规格

5 如果 Type(rval) 不是 Object,则抛出 TypeError 异常。

于 2012-12-17T19:34:42.717 回答