0

Uncaught SyntaxError: Unexpected token : at chrome を <script> {'foo':'bar'}</script> 引き起こした理由

そして<script> {foo:'bar'}</script>ちょうどいい。

4

2 に答える 2

10

これはオブジェクト リテラルではないため、コード ブロックです。括弧内はキーと値のペアとして解析されず、コードとして解析されます。

foo: 'bar'foo:ラベルや式と同様に、コードとしては問題'bar'ありません。

'foo':ラベルは文字列にすることはできず、識別子でなければならないため、コードとしては問題ありません。

オブジェクトリテラルにするには、次のように式にする必要があります。

<script> var x = {'foo':'bar'}</script>

また:

<script> ({'foo':'bar'})</script>
于 2012-11-27T16:35:58.187 に答える
0

これは、二重引用符 ( ) を使用する必要があるJSONではないことに注意してください"

このオブジェクト リテラルを要素に直接配置しているため、<script>として解析されません(有効なオブジェクトである場合)。代わりに、ブレースはblock statementとして解析され、labelとして解析されます。は無効なラベルになるため、構文エラーになります。 foo:'foo'

于 2012-11-27T16:36:53.327 に答える