2012-02-06 154 views
0
var t={a:"1",b:"2"} 

JavaScript與術語混淆?

是這樣的一個Object具有屬性(A,B)

,或者它是

一個Javascript Labeled Statement

還是取決於上下文?

這是怎麼回事?

enter image description here

我想知道爲什麼評估和演示包裝本身()

它是有解決的困惑。 (聲明 VS 表達

精細。

{"a":"1"}不能永遠是Labeled statement(因爲它包裝了a"的),它是illigle和無效的!

所以它只有是一個具有屬性的對象!

絲毫不亞於 {A: 「1」}只能是一個標記語句,而不是一個具有屬性的對象(屬性應該有{一個: 「1」}

那麼,爲什麼評估和演示不能檢查嗎?

+0

[Javascript confusing terms around eval Checking?]的可能重複?(http://stackoverflow.com/questions/9157859/javascript-confusing-terms-around-eval-checking) – 2012-02-06 09:21:20

+0

@Royi Namir double post:http:/ /stackoverflow.com/questions/9157859/javascript-confusing-terms-around-eval-checking – c69 2012-02-06 09:21:23

+0

我想你是與JSON – 2012-02-06 09:25:25

回答

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()以及使具有屬性typeurldataTypecontentTypedatacache對象函數,...作爲參數的呼叫。

爲什麼Eval無法檢查它?

對不起?

+0

peroperties應該與**「** ...否? – 2012-02-06 09:22:20

+1

@RoyiNamir否,不一定是對象字面符號 – Yoshi 2012-02-06 09:23:01

+0

@Royi:您必須考慮JSON。JSON屬性名稱應該引用,JavaScript沒有這樣的要求 – 2012-02-06 09:24:23

2

JSON (JavaScript Object Notation)數據。在你的情況下,數據被分配給一個變量。

從根本上說,JSON是一組鍵 - 值對。看看的對於m,JavaScript example礦石線索。

+0

不,它不是因爲json必須」在每個屬性!看看jsonlint – 2012-02-06 09:21:32

+0

@RoyiNamir不一定,但它是必需的。 – adarshr 2012-02-06 09:24:03

+0

實際上,引號是JSON所必需的,參見[RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)2.2和2.5節。 JavaScript不需要引用對象字面值,但JSON可以。 – 2012-02-06 18:22:11

0

這些是使用JavaScript文字符號定義的對象。

+0

同樣,它是* javascript文字符號*。另外道格拉斯克羅克福德自己的JSON RFC沒有提到引用標識符的內容http://www.ietf.org/rfc/rfc4627.txt – 2012-02-06 09:49:00

+0

你完全錯過了這一觀點。這個問題涉及javascript的摘錄。這正是我爲什麼將* literal *符號引用爲正確的原因; LITERAL符號。在這種情況下,如果在名稱周圍有單引號,雙引號或者全部沒有引號,那麼它絕對沒有區別。它仍然是一個LITERAL javascript對象。你會注意到,我和其他許多人一樣,包括鏈接到json.org,以幫助解釋這種符號的想法。如果你有更好的答案,我會鼓勵你提交它,而不是對別人做無益和迂腐的評論。 – 2012-02-06 18:57:35

+0

我不同意。 「明確指出JSON(並且只有JSON)需要引號」與這個問題完全無關。我並沒有指責任何人遭到人身攻擊。我正在迴應這個事實,即你試圖找到過錯。這次通過批評使用* literal *這個詞。我再次建議你可以通過提供幫助而不是批評他人來提供更多有建設性的意見。 – 2012-02-06 19:41:48