<p><a href="http://www.cs.miami.edu/~burt/learning/five-easy-pieces/newwb/arrays_objects_dictionaries.html" rel="noreferrer">From :</a></p>
<blockquote>
<p>In Python, dictionaries are a form of mapping type. They can be
initialized using a sequence of comma-separated name: value pairs,
enclosed in curly braces. They are accessed using array notation
involving square braces. The key can be any hashable, including
numbers and strings.</p>
<p>In Javascript, a dictionary is the same as an object. It can be
initialized using the same syntax as Python. The key can be a number,
a string, or an identifier. Because the dictionary is also an object,
the elements can be accessed either using array notation, e.g. b[i],
or using property notation, e.g. b.i.</p>
<p>Consider an identifier used in an initializer, such as</p>
<pre><code> b = {i:j}
</code></pre>
<p>In Python both i and j are evaluated, but in Javascript, only j is evaluated. In Javascript you also have the
privilege of writing in the dot notation, using the identifier i.
Hence in Python,</p>
<pre><code> i='k'
j=1
b = {i:j}
b['k'] # -> 1
</code></pre>
<p>In Javascript,</p>
<pre><code> i='k'
j=1
b = {i:j}
b['i'] // -> 1
b.i // -> 1
// b[i], b['k'] and b.k are not defined
</code></pre>
<p>In Javascript, using the identifier in dot notation is completely identical in all cases to
using a string that "looks like" the identifier in array notation.
Hence,
b = { 'i':1 } ;
b['i'] // -> 1
b.i // -> 1 When a number or boolean is used in a dictionary, Javascript will access the element using a string representation of
the number or boolean. Not so in Python — a string and a number (or
boolean) are different hashables.</p>
</blockquote>
<p>如果您对两种语言之间的差异感兴趣,请看<a href="https://stackoverflow.com/questions/1786522/how-different-are-the-semantics-between-python-and-javascript?answertab=votes#tab-top">ans</a></p>