I mildly disagree with Airblader about his use of the term "keys".
Technically they are properties
of the object. Or, even more correctly, property names
, since the actual properties are the values associated with each property name.
There is absolutely nothing wrong with thinking of them as "keys", of course. And it does match the usage of 'keys" and "values" as seen in other languages (e.g., PHP).
But I find it much more intuitive to think of them as properties, with property names, because then it more closely matches the DOM with its properties, property names, and more. And, too, the multiple levels matches more closely, too.
<input id="foo" style="color: red;" />
var inp = document.getElementById("foo"); // get an object reference
alert( inp.style.color ); // get the property style and then the sub-property color
See how similar it is?
But by all means, if you are used to key=>value pairs, as in PHP, go ahead and think of them that way.