JS-fn()中返回后方括号的含义{return{}[]}
Meaning of squared brackets after return in JS - fn(){return{}[]}
我见过这种语法,但我不确定它的基本功能。我目前的假设是,它检查参数是否为!= null
和is 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;
}
这:
{
1: 'Test1',
2: 'Test2'
}
是对象文字,因此其值是对象引用。
此:
[value]
是对象属性引用表达式。如果传递给[ ]
运算符的字符串值在对象中找不到作为属性名称,则与对象引用相结合将获得对象属性值或undefined
。
填充return
的代码前缀,使属性查找的结果成为函数的返回值。
因此,只要参数是该对象常量中的属性,函数就会返回与传入参数的字符串值相对应的对象属性值,否则返回undefined
。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- jquery if语句返回return wong语句
- 函数在return语句之前返回空对象
- JS-fn()中返回后方括号的含义{return{}[]}
- (new Array(10)).map(function() { return 1;}) 返回 [, , , , , .
- 将 React 的方法 'return' 作为字符串返回
- 在 JavaScript 中返回一个 return
- 为什么我的子函数需要“return”语句以避免出错?父函数没有“返回”,也没有错误
- return语句在完成任务之前返回
- 返回大括号在javascript中意味着什么(例如return{init:init})
- 当您从函数返回JavaScript语句时会发生什么,例如return console.log(“Hello”)
- Eval在执行带有return语句的函数时总是返回错误
- 为什么构造函数(带“return this”)返回窗口对象?
- JS.对象函数Return中的返回函数
- 在mvc中使用Action Result作为返回类型时,return文件不存在
- Node.js + Python子进程:Print返回数据,但return不返回't
- 为什么返回的值应该与JavaScript中的return语句在同一行
- 返回false,与Return相同