Javascript 这个代码中的曲线括号有什么问题 const时区={'a':1}; 常量选项=地图(时区,(val,键)=>{ {key} }); console.log(选项);//[未定义]
使用箭头函数中的曲线括号,它输出[未定义]Javascript 这个代码中的曲线括号有什么问题 const时区={'a':1}; 常量选项=地图(时区,(val,键)=>{ {key} }); console.log(选项);//[未定义],javascript,reactjs,ecmascript-6,babeljs,react-jsx,Javascript,Reactjs,Ecmascript 6,Babeljs,React Jsx,使用箭头函数中的曲线括号,它输出[未定义] const timezone = {'a' : 1}; const options = map(timezone, (val, key) => { <option key={val} value={val}>{key}</option> }); console.log(options); // [undefined] const时区={'a':1}; 常量选项=地图(时区
const timezone = {'a' : 1};
const options = map(timezone, (val, key) => {
<option key={val} value={val}>{key}</option>
});
console.log(options); // [undefined]
const时区={'a':1};
常量选项=地图(时区,(val,键)=>
{key}
);
console.log(选项);//数组[1]
如果箭头函数中没有曲线括号,则输出数组[1]
两个代码块之间发生了什么?第一个示例没有返回值,第二个示例隐式返回,这是可用箭头函数语法的一个特征 调整第一个示例,使其返回:
const timezone = {'a' : 1};
const options = map(timezone, (val, key) =>
<option key={val} value={val}>{key}</option>
);
console.log(options); // Array[1]
另请看一看。第一个示例没有返回值,第二个示例隐式返回,这是可用箭头函数语法的一个特性 调整第一个示例,使其返回:
const timezone = {'a' : 1};
const options = map(timezone, (val, key) =>
<option key={val} value={val}>{key}</option>
);
console.log(options); // Array[1]
另请看。对于数组函数,如果函数只包含一条语句,则可以像在第二个示例中所做的那样,省略花括号。如果执行此操作,函数将隐式返回此语句计算结果的值 如果不省略花括号,则不会发生此隐式返回,从而导致示例中的返回值
undefined
对于数组函数,如果函数只包含一条语句,则可以像在第二个示例中所做的那样,省略小括号。如果执行此操作,函数将隐式返回此语句计算结果的值 如果不省略花括号,则不会发生此隐式返回,从而导致示例中的返回值
undefined
您的第一个示例没有返回任何内容。尽管第二个示例似乎也没有,但没有大括号且只有一条语句的lambda函数将隐式返回对该语句求值的结果 带大括号和不带大括号的等价性是
// 1) with braces (no return):
(param1, param2, …, paramN) => { statements }
// 2) without braces (implicit return):
(param1, param2, …, paramN) => expression
// 3) equivalent to 2 (braces with return statement):
(param1, param2, …, paramN) => { return expression; }
const时区={'a':1};
常量选项=地图(时区,(val,键)=>{
返回({key});
});
console.log(选项);
而且
const timezone = {'a' : 1};
const options = map(timezone, (val, key) => {
return (<option key={val} value={val}>{key}</option>);
});
console.log(options);
const时区={'a':1};
常量选项=地图(时区,(val,键)=>
{key}
);
console.log(选项);
您的第一个示例没有返回任何内容。尽管第二个示例似乎也没有,但没有大括号且只有一条语句的lambda函数将隐式返回对该语句求值的结果
带大括号和不带大括号的等价性是
// 1) with braces (no return):
(param1, param2, …, paramN) => { statements }
// 2) without braces (implicit return):
(param1, param2, …, paramN) => expression
// 3) equivalent to 2 (braces with return statement):
(param1, param2, …, paramN) => { return expression; }
const时区={'a':1};
常量选项=地图(时区,(val,键)=>{
返回({key});
});
console.log(选项);
而且
const timezone = {'a' : 1};
const options = map(timezone, (val, key) => {
return (<option key={val} value={val}>{key}</option>);
});
console.log(options);
const时区={'a':1};
常量选项=地图(时区,(val,键)=>
{key}
);
console.log(选项);
不带大括号的箭头函数隐式返回正文中的任何内容。带大括号的箭头函数的行为与普通函数一样。@Aurora0001-这应该是一个答案(带有显示简单修复的代码示例)@JustinNiessner看起来我有点错过了这把枪-其他3个人已经回答了,老实说,不值得再添加一个答案。不带大括号的箭头函数的可能复制会隐式返回体内的任何内容。带大括号的箭头函数的行为与普通函数一样。@Aurora0001-这应该是一个答案(带有显示简单修复的代码示例)。@JustinNiessner看起来我有点错过了枪-其他3个函数已经回答了,老实说,不值得再为其添加另一个答案。可能是