JS-fn()中返回后方括号的含义{return{}[]}

Meaning of squared brackets after return in JS - fn(){return{}[]}

本文关键字:return 返回 方括号 JS-fn      更新时间:2023-09-26

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

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

fn()导致undefinedfn(1)导致Test1fn(2)导致Test2fn(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;
} 

这:

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

是对象文字,因此其值是对象引用。

此:

 [value]

是对象属性引用表达式。如果传递给[ ]运算符的字符串值在对象中找不到作为属性名称,则与对象引用相结合将获得对象属性值或undefined

填充return的代码前缀,使属性查找的结果成为函数的返回值。

因此,只要参数是该对象常量中的属性,函数就会返回与传入参数的字符串值相对应的对象属性值,否则返回undefined