【问题标题】:How does JavaScript interpret indexing array with array? [duplicate]JavaScript 如何用数组解释索引数组? [复制]
【发布时间】:2016-04-19 04:53:12
【问题描述】:
[1,2,4,8][0,1,2,3]
// equals to 8 (the last element of the indexing array (3) becomes the index)

为什么这不是SyntaxError 错误(不好的遗留或有目的的功能)? (可能重复,但我找不到答案here。)

更新:为什么是the contents of the square brackets are treated as an expression

【问题讨论】:

    标签: javascript arrays indexing


    【解决方案1】:

    第一部分:

    [1,2,4,8]
    

    被解释为数组文字。第二部分:

    [0,1,2,3]
    

    被解释为方括号符号来访问数组的成员。方括号的内容被视为一个表达式,它被视为一系列逗号分隔的值:

    0,1,2,3 // or (0,1,2,3) as an independent expression
    

    该表达式返回最后一个值,实际上是这样:

    [1,2,4,8][3] // 8
    

    【讨论】:

    • 是的,从问题中可以看出这一点,即(抱歉再次询问):why is it like this?
    • @Vidul:因为语法x[y]实际上被解释为reference[expression]。由于索引是一个表达式,因此逗号被视为运算符,其方式与 +- 相同。索引是一个表达式的原因是允许类似:x[y+1]。这就是为什么
    • @slebetman 你的评论很有道理。你能把它作为答案发布吗?
    • @Vidul:不幸的是我不能,因为这个问题已经结束,而且重复的问题并不完全是在问你在问什么。
    • @Vidul:反正我不介意。接近 40k 我不需要积分
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2017-01-09
    • 1970-01-01
    • 2019-07-06
    • 2019-02-20
    • 2022-11-27
    • 2015-07-19
    相关资源
    最近更新 更多