要么你说' - '作为减法表达式。为什么我们需要使用[]来访问变量名包括hyphan?
例如,
Json = {'Me-m':123}
但是你有没有想过为什么我们需要使用[]
来访问这个连字符变量。
就像那样Json['Me-m']
。
要么你说' - '作为减法表达式。为什么我们需要使用[]来访问变量名包括hyphan?
例如,
Json = {'Me-m':123}
但是你有没有想过为什么我们需要使用[]
来访问这个连字符变量。
就像那样Json['Me-m']
。
书面方式
Json.Me-m
将评估为
Json.Me - m
它会尝试从JSON对象访问我的财产,减去m个可变,这将可能是不确定的。
这是因为“ - ”在JavaScript中的意义,因此,如果你写Json.Me-m
JavaScript的解释:“变量m
的值。减去对象``Json`的属性Me
的价值”。
在JavaScript中,您可以访问名称的对象的任何成员,使用[]
,并在字符串中,JavaScript是不打算尝试评估什么,所以当你写Json[
我-M ]
,它解释为: '检索对象的名称Me-m
的值Json
'
原因很简单:在Javascript中,每个对象都是一个索引键/值字典,使用“。”访问变量。这是一个捷径,显然“字典对象”这是一个性能问题的事实,但尽管如此,JavaScript与其他脚本语言相比非常快。
回答你的问题,通过设计一个索引可以是一个包含“ - ”字符的字符串,但不是一个属性...所以如果你有一个属性与该字符,它将无法用“。 “符号。
因为你传递一个特殊字符键obj的一部分,为了访问obj的值,我们需要使用[]。 例如。 json ['Me-m']
你的问题的第一句话就是答案。它将被视为减法运算符。 – Quentin
要使用[点符号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Property_accessors#Dot_notation),您需要一个有效的[标识符](https://developer.mozilla.org/docs/Glossary/Identifier),其中'Me-m'不是。 – Yoshi