簡體   English   中英

是用方括號聲明后用方括號索引的有效javascript嗎?

[英]is it valid javascript to index with square brackets right after declaring with square brackets?

通常我會寫

arr = ['choiceA', 'choiceB', 'choiceC', 'choiceD', 'choiceE'];
position = 3;
answer = arr[position];

只是想知道......是否有效的javascript寫下面的內容?
它會跨瀏覽器工作嗎?

answer = ['choiceA', 'choiceB', 'choiceC', 'choiceD', 'choiceE'][position];

是的,根據ECMAScript 5規范

MemberExpression :
    PrimaryExpression
    FunctionExpression
    MemberExpression [ Expression ]
    MemberExpression . IdentifierName
    new MemberExpression Arguments

其中PrimaryExpression定義為

PrimaryExpression :
    this 
    Identifier
    Literal
    ArrayLiteral
    ObjectLiteral
    ( Expression )

因此構造ArrayLiteral[Expression]是有效的。


它並不一定意味着它適用於每個瀏覽器(特別是IE有一些語法怪癖)但你應該假設它確實存在。

是的,它會的。 這個sintax看起來很奇怪,但它完全有效。 您正從一個未分配給任何東西的數組中獲取位置值。

這是有效的。 它和做的幾乎一樣

 some_func_that_returns_an_array()[7]

是的,數組文字可以是成員運算符的語法上有效的左側部分。 它確實可以跨瀏覽器工作。

我發現這構造了一個非常可讀的替代冗長的switch語句,並將它與對象文字一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM