Javascript与条款混淆?

时间:2012-02-06 09:18:20

标签: javascript jquery eval

var t={a:"1",b:"2"}

enter image description here

这是一个Object,其属性(a,b)

或者是

一个Javascript Labeled Statement

或者它取决于上下文?

这是怎么回事?

enter image description here

我想知道为什么Eval用( )

包裹自己

它可以解决混乱。 (声明 vs 表达

精细

但是

{"a":"1"}不能是Labeled statement(因为包裹"的{​​{1}}),它是无效且无效的!

因此是具有属性的对象!!!

和p一样多 {a:“1”}只能是Labeled语句,而不是具有属性的对象(属性应附带{ a :“1”}

为什么Eval无法检查呢?

3 个答案:

答案 0 :(得分:3)

var t={a:"1",b:"2"}

是具有属性ab的对象。

  

这是怎么回事?

$.ajax({
    type: 'POST',
    url: '../Handler...',
    dataType: 'json',
    contentType: 'application/json; charset=utf-8',
    data: $.toJSON(jsonObj),
    cache: false,
    ...        
});

这是对名为$.ajax()的函数的调用,并传递一个包含属性typeurldataTypecontentType,{{1}的对象},data,...作为参数。

  

为什么Eval无法检查它?

请原谅我?

答案 1 :(得分:2)

JSON (JavaScript Object Notation)数据。在您的情况下,数据被分配给变量。

从根本上说,JSON是一组键值对。请查看JavaScript example以获取更多线索。

答案 2 :(得分:0)

这些是使用javascript文字符号定义的对象。