【问题标题】:Technical term for the way [n] is working in line 3 (array access)[n] 在第 3 行中的工作方式的技术术语(数组访问)
【发布时间】:2018-07-22 12:41:10
【问题描述】:

我理解这是如何工作的,因为我希望我已经在 cmets 中说明了这一点,但是我正在寻找一个技术性的信息,即:在第 3 行中,变量 [n] 被传递到第 3 行方括号格式,在方括号中传递 [n] 的正确术语是什么,例如括号表示法?或者那是错误的,是先计算方括号中的 n,然后将计算值传递给第 3 行的表达式的其余部分?

while (total < 10) // Line 1: while total is less than 10

{ n++; // Line 2: increment the variable n by 1 each time the loop executes
total += values[n]; // Line 3: Adds the value of an expression to the value 
//of a variable and assigns the result to the variable.
}

【问题讨论】:

  • n 是一个数组索引,values 是一个数组。所以values由很多元素组成,[n]`指的是n-th一个。对“JavaScript 中的数组”进行 Google 搜索。数组是大多数计算机语言中常见的数据结构,索引语法也相当普遍。
  • 好的,感谢您朝正确的方向轻推。

标签: javascript terminology


【解决方案1】:

在您的代码中:

total += values[n];

这行意味着您有一个名为“values”的数组,并且在每次迭代中,您将 total 的值与索引“n”的数组值递增,直到总数大于或等于 10

【讨论】:

  • 感谢您的意见。
【解决方案2】:

在 javascript(实际上是 ecmascript)中,您可以使用两个 语义 访问属性:点符号 MemberExpression . IdentifierName 和括号符号 MemberExpression[ Expression ](您在 sn-p 中使用)。

在第一种情况下,IdentifierName需要是一个有效的 Js 标识符(例如,没有连字符或不能以数字开头),而在第二种情况下,它只需要是一个有效的 表达式 .

这使您问题的最后一部分变得简单:括号中的内容是一个表达式,需要在访问属性之前对其进行评估。您应该查看有关该主题的规范和/或 MDN 以了解更多详细信息。

您可以使用这种语法访问 JS 中每个值的属性,并且您的程序在语法上是有效的,但如果您尝试访问 undefinednull 上的字段,或者如果某些吸气剂抛出。

【讨论】:

    【解决方案3】:

    按索引访问/按索引获取是正确的术语...假设values 是一个数组。甚至可以按索引随机访问,因为您可以获得任何索引(以随机顺序)。 无法以这种方式访问​​具有相同性能的链表。

    对于对象,您会说 access 或 get by key。 对于对象,如果您使用myObject.theKey,那么这就是调用 dot notation

    【讨论】:

    • 感谢 Christophe,这真的很有帮助。
    • 我想知道谁实际上对我接受的答案投了反对票……请在此处发表评论或提出修改意见,而不是投反对票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2011-03-13
    • 2020-10-28
    • 1970-01-01
    • 2016-04-11
    • 2011-03-18
    相关资源
    最近更新 更多