() => X vs () => { return X } - V2EX
Aloento

() => X vs () => { return X }

  •  
  •   Aloento Nov 20, 2022 4096 views
    This topic created in 1284 days ago, the information mentioned may be changed or developed.
    RT ,这俩有啥区别吗?

    比如
    useMemo(() => subscription(x), [x]);
    13 replies    2022-11-21 15:52:48 +08:00
    qeqv
        2
    qeqv  
       Nov 20, 2022
    问之前不自己试一下吗?
    qeqv
        3
    qeqv  
       Nov 20, 2022
    @qeqv 哦,我弄错了。这两个语法上是一样的,不过注意第一种不能用逗号返回值。不过你这里逗号看作是函数参数的分隔,所以没问题
    horseInBlack
        4
    horseInBlack  
       Nov 20, 2022
    // 箭头函数的一般写法
    const arrowFunction1 = () => {
    return 123;
    };

    // 如果函数只有一个返回值,可以在箭头后只写返回值
    const arrowFunction2 = () => 123;

    // 如果返回值类型为对象,对象的括号会和函数体的括号冲突,这时候可以用圆括号包住花括号
    const arrowFunction3 = () => ({
    a: "hello",
    });
    netnr
        5
    netnr  
       Nov 20, 2022
    {} 可以写复杂的逻辑再 return
    sweetcola
        6
    sweetcola  
       Nov 20, 2022
    区别就是第一种简洁,好看,写起来会比第二种爽,有种畅快清凉感
    buxudashi
        7
    buxudashi  
       Nov 20, 2022
    区别就是。当有多行时。用后面的。当有一行时,简写为第一个。

    你学废了吗
    justin2018
        8
    justin2018  
       Nov 20, 2022
    箭头函数 - Javascript | MDN
    https://developer.mozilla.org/zh-CN/docs/Web/Javascript/Reference/Functions/Arrow_functions#%E5%87%BD%E6%95%B0%E4%BD%93

    在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的 return 语句。
    Justin13
        9
    Justin13  
       Nov 20, 2022 via Android
    没区别,后者方便打断点
    sankemao
        10
    sankemao  
       Nov 20, 2022 via iPhone
    我喜欢后面的
    yaphets666
        11
    yaphets666  
       Nov 21, 2022
    有区别的,如果 X 是{1:2},第一种就不行了,需要加()
    libook
        12
    libook  
       Nov 21, 2022
    题主的意思是问箭头函数右侧是用表达式和用块的区别吗?
    程序上没啥区别,用表达式也是隐含有一个块级作用域并自动 returen ,也就是说实际上表达式写法会被处理成块写法。需要注意的是,右侧代码被解析成函数块的优先级高于 JSON 块,也就是说如果你要用表达式写法返回一个 JSON ,得外面套个括号,比如 ()=>({a:1}) 。

    其余的就是可读性问题了,如果你打算在箭头函数后面拼接三元运算符之类的,可能读起来会比较难理解。
    xingguang
        13
    xingguang  
       Nov 21, 2022
    就是简洁一些,如果返回的是个对象还可以这样写
    ```js
    () => ({ x:'xxx' });
    ```
    About     Help     Advertise     Blog     API     FAQ     Solana     1326 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 62ms UTC 17:15 PVG 01:15 LX 10:15 JFK 13:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86