2

in私はちょうどJavascriptで演算子をテストしていました。のようなものを実行するconsole.log("cookie" in document)とログtrueに記録されますが、cookiejarを実行するか、変数にconsole.log("cookie" in "cookiejar")割り当ててから実行すると、エラーステートメントTypeError:invalid'in'オペランドaが表示されます。なぜこのように振る舞うのか誰か教えてもらえますか?aconsole.log("cookie" in 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 に答える