返回箭頭函數中的值與添加正文並鍵入返回值有什麼區別?箭頭函數體與返回值。 ()=> {return value;} vs.()=> value;
據我所知他們是一樣的。
這裏有一個會話:
let a =() => 1;
a()
1
let b =() => { return 1; }
b()
1
a
() => 1
b
() => { return 1; }
是否有當這些不同的任何情況?
返回箭頭函數中的值與添加正文並鍵入返回值有什麼區別?箭頭函數體與返回值。 ()=> {return value;} vs.()=> value;
據我所知他們是一樣的。
這裏有一個會話:
let a =() => 1;
a()
1
let b =() => { return 1; }
b()
1
a
() => 1
b
() => { return 1; }
是否有當這些不同的任何情況?
簡潔的主體箭頭函數隱式返回值,而對於多行箭頭函數,您必須顯式返回值。
在你的情況都將有同樣的最終結果
在您回答之前,請直接說出您的術語。 「胖箭」這個詞已經有好幾年沒有使用過了。另外,它不是「單線」;它是一個「簡潔的身體」。 –
@torazaburo你怎麼知道術語「胖箭頭」多年沒有使用過?你有什麼指標嗎?相同的「單行」 – alt255
這很難證明一個否定。請在規範或MDN中查找術語「胖箭頭」的引用。非'{}'形式的技術術語非常清楚:它是「簡潔的身體」。一個簡潔的主體可以是多行,如'()=> 1 +(NEWLINE)2'。 –
一個區別是,返回使用隱式返回語法對象文字要求的對象文本被包裹在括號中。
var foo =() => { bar: "foobar" }; //This function returns undefined
var foo =() => { return { bar: "foobar" }; }; //This function returns an object
var foo =() => ({ bar: "foobar" }); //This function returns object
據我所知,這是唯一的區別。
不知道這是爲什麼我正在經歷一些事情......在過濾方法期間...這不起作用:.filter(x => {x =='a'})但是這個DID工作.filter(x => x =='a')。這是否與你所說的有關? – carinlynchin
是的,他們是一樣的。 –
與{}你可以使身體多線,沒有其他區別 – juvian
相關:[箭頭函數沒有花括號](https://stackoverflow.com/questions/39629962/arrow-function-without-curly-braces),[捲曲括號在箭頭函數](https://stackoverflow.com/questions/35440265/curly-brackets-in-arrow-functions),[ES6箭頭功能括號](https://stackoverflow.com/questions/38730747/es6-箭頭功能與括號) – trincot