Regarding your first question: there is no difference between your 1st and 2nd example.
For your second question, let's look at this small example:
charCount = { a: 2, b:3 }
char = 'a'
print(charCount[char]) // 2
print(charCount.char) // error
As pointed out in the comment, when you call charCount[char]
, it will dynamically access object property using variable. What it does is just simply replace the variable char
with its current value (which is a
in this case). So, the call becomes charCount['a']
, and you got the result.
When you call charCount.char
, it literally tries to access the property named char
of the object charCount
. In this case, that property does not exist, which is why you got an error.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…