Reputation: 841
I'm looking at the Google Maps API tutorial, and I see this:
<script type="text/javascript"
src="http://www.google.com/jsapi?autoload={'modules':[{name:'maps', version:3, other_params:'sensor=false'}]}"></script>
Why is modules
wrapped in single quotes?
Upvotes: 5
Views: 4205
Reputation: 149534
The currently accepted answer is incorrect — reserved words are valid identifier names, so they’re allowed as unquoted property names in JavaScript.
From Unquoted property names / object keys in JavaScript, my write-up on the subject:
Quotes can only be omitted if the property name is a numeric literal or a valid identifier name.
[…]
Bracket notation can safely be used for all property names.
[…]
Dot notation can only be used when the property name is a valid identifier name.
I also made a tool that will tell you if any given property name can be used without quotes and/or with dot notation. Try it at mothereff.in/js-properties.
Upvotes: 1
Reputation: 21763
In fact, in most JSON implementations (because it's actually a JSON string), like jQuery's getJSON, it's obligatory to put all strings, whether they represent values or properties, within double-quotes.
Upvotes: 1
Reputation: 81384
It's not required unless:
Upvotes: 0
Reputation: 344301
It's a good practice to wrap keys in quotes, even though not strictly required, in order to avoid the possibility of conflicts with JavaScript reserved words.
Imagine if you had class
instead of modules
- class
happens to be a reserved word in JavaScript, even though it is not actually used in the current specification.
Upvotes: 8