我已经看到了这种语法,但不确定其基本功能。
我目前的假设是,它检查参数是否为!= nullis in the return

fn = function(value) {
    return {
        1: 'Test1',
        2: 'Test2'
    }[value];
}


fn()导致undefined
fn(1)导致Test1
fn(2)导致Test2
fn(3)导致undefined

我不确定我的假设。有人可以澄清一下并告诉我此语法构造的名称是什么(它有一个特定的名称)吗?

编辑:我是从随机上下文中看到它的,那里没有意识到它基本上只是在访问它。谢谢!

最佳答案

它不检查任何东西。

您有一个对象文字。

{
    1: 'Test1',
    2: 'Test2'
}


使用方括号符号从中提取值

(result of evaluating previous expression)[value]


然后返回结果

return (result of evaluating previous expression)


您可以将其重写为:

fn = function(value) {
    var data = {
        1: 'Test1',
        2: 'Test2'
    };
    var return_value = data[value];
    return return_value;
}

关于javascript - JS中返回后方括号的含义-fn(){return {} []},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29419258/

10-12 00:26