在Restify框架代码中,我找到了这个函数:
function queryParser(options) {
function parseQueryString(req, res, next) {
// Some code goes there
return (next());
}
return (parseQueryString);
}
Run Code Online (Sandbox Code Playgroud)
为什么作者会写return (next());
和return (parseQueryString);
?它是否需要括号,如果是,为什么?
And*_*dru 83
如果要在多行上编写return语句,则必须在返回时使用括号.
React.js
提供了一个有用的例子 在render
组件中属性的return语句中,为了便于阅读,您通常希望传播JSX,并返回多行,例如:
render: function() {
return (
<div className="foo">
<h1>Headline</h1>
<MyComponent data={this.state.data} />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
如果没有括号,则会导致错误!
更一般地说,在多行上传递return语句时不使用括号将导致错误.以下示例将正确执行:
var foo = function() {
var x = 3;
return (
x
+
1
);
};
console.log(foo());
Run Code Online (Sandbox Code Playgroud)
以下(没有括号)会抛出错误:
var foo = function() {
var x = 3;
return
x
+
1
;
};
console.log(foo());
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 18
它不需要那样,但它是有效的JavaScript代码.实际上,看到这样的语法并不常见.我想这是作者的个人偏好.
Bas*_*nic 10
括号在 return 语句中有两个用途。
() => ({ name: 'Amanda' }) // Shorthand to return an object
这相当于
() => {
return { name : 'Amanda' }
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看这篇文章。 https://medium.com/@leannezhang/curly-braces-versus-parenthesis-in-reactjs-4d3ffd33128f
// Create a component named MessageComponent
var MessageComponent = React.createClass({
render: function() {
return (
<div>{this.props.message}</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
注意 为什么我们需要在 return 语句周围加上括号(第 3 行)?这是因为 JavaScript 的自动分号插入。如果没有括号,JavaScript 将忽略以下行并返回没有值。如果 JSX 与返回在同一行开始,则不需要括号。
取自这里。