Javascript'in'函数显示奇怪的行为

时间:2012-12-17 19:31:12

标签: javascript

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

2 个答案:

答案 0 :(得分:6)

in运算符没有按照您的想法执行。 a in b 告诉您给定对象 b 是否具有名为 a 的属性。

您无法使用in搜索字符串中的字符。请使用indexOf

'cookiejar'.indexOf('cookie')

请注意,in operatorfor-in statement完全分开且完全无关。

答案 1 :(得分:4)

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

From the spec

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