2012-10-20 1 views
5

Powiel możliwe:
What is the difference between object keys with quotes and without quotes?JS klucze obiektu z cudzysłowami lub bez?

jest zainteresowanie, jaka jest właściwa droga, pisać kluczy obiektowych w cudzysłowie, czy nie? czyli

var obj = { 
    "name": "Jhon" 
} 

lub

var obj = { 
    name: "Jhon" 
} 

na przykład z kodu php echo json_encode(array("a"=>"aaa","b"=>"bbb")); wynikiem jest obiekt, który ma klucze z cytatami. Ale na przykład zobaczyć jquery animate, w dokumentacji jest klucze bez cudzysłowu, (jest to także format obiektu JS, prawda?)

   $("#someElement").animate({ 
        marginLeft: "200px" 
       }, 
       { 
        duration: 1000 
       }); 

Więc, co jest bardziej właściwa droga?

+1

dobre Przeczytaj o JSON vs obiekt dosłowny: http://benalman.com/news/2010/03/theres-no-such-thing-as- a-json/ –

Odpowiedz

7

Nie należy mylić obiektu JSON z literałem obiektu JavaScript. Obiekt JSON jest po prostu ciągiem znaków, a jego składnia wymaga odpowiednich cytatów. Jednak dla cytowania obiektów javascript wokół jego właściwości nie są konieczne. Jednak w niektórych przypadkach trzeba je wykorzystać, na przykład:

var test = { 
    "with spaces": 12 
} 
+0

O, w prawo, pomylam obiekty JSOn i JS. Jak zrozumiałem, w każdym razie lepiej jest pisać klucze w cudzysłowach, więc dziękuję. – RIKI

+2

Nie, lepiej nie używać cytatów. Naprawdę. Potrzebujesz tylko tych dodatkowych znaków na wypadek, gdyby nazwa nieruchomości nie była poprawnym identyfikatorem: "z przestrzenią", "cześć-john", "123test", itp. – dfsq

+0

Zrozumiałem, bardzo dziękuję. – RIKI