标签: javascript
我只是在Javascript中测试in运算符。当我运行类似console.log("cookie" in document)的内容时,它会记录true,但是当我console.log("cookie" in "cookiejar")或将 cookiejar 分配给变量a然后执行{ {1}},我在'operand a 中收到错误声明 TypeError:invalid'。谁能告诉我为什么它会像这样?
in
console.log("cookie" in document)
true
console.log("cookie" in "cookiejar")
a
答案 0 :(得分:6)
in运算符没有按照您的想法执行。 a in b 告诉您给定对象 b 是否具有名为 a 的属性。
您无法使用in搜索字符串中的字符。请使用indexOf。
indexOf
'cookiejar'.indexOf('cookie')
请注意,in operator与for-in statement完全分开且完全无关。
for-in
答案 1 :(得分:4)
in仅适用于对象,而不适用于字符串。
From the spec:
5如果Type(rval)不是Object,则抛出TypeError异常。