为什么我们需要使用[]访问变量名包括hyphan?

时间:2016-11-25 10:14:16

标签: javascript

如果你说' - '作为减法表达式。

  

例如。 Json = {'Me-m':123}

但是您知道为什么我们需要使用[]来访问此连字符变量。

就像Json['Me-m']

5 个答案:

答案 0 :(得分:1)

书面方式

Json.Me-m

将评估为

Json.Me - m

它将尝试从Json对象访问Me属性并减去m变量,这可能是未定义的。

答案 1 :(得分:1)

因为Me-m不是用作属性的有效属性名称,因此您被迫使用地图读取this或检查here是否有效的属性名称

答案 2 :(得分:0)

那是因为' - '在javaScript中有意义,所以如果你写Json.Me-m JavaScript解释:'将变量m的值提取到对象``Json的属性Me的值`'

在javascript中,您可以使用[]按名称访问对象的任何成员,并且在字符串中,javascript不会尝试评估任何内容,因此当您编写Json[ Me-时m ],它被解释为:'检索对象Me-m'

中名为Json的成员的值

答案 3 :(得分:0)

原因很简单:在Javascript中,每个对象都是一个索引键/值字典,用“。”访问变量。这是一个快捷方式,显然“字典对象”的事实是一个性能问题,但尽管如此,与其他脚本语言相比,它的速度非常快。

通过设计索引来回答您的问题可以是包含“ - ”字符的字符串,但不是属性...因此,如果您有一个具有该字符的属性,则无法使用“。”访问它。符号

答案 4 :(得分:0)

因为你在obj的关键部分传递了一个特殊字符,并且为了访问obj的值,我们需要使用[]。 例如。 JSON [ 'ME-M']