推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Aloento

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

  •  
  •   Aloento · Nov 20, 2022 · 4533 views
    This topic created in 1451 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
    qeqv
    Nov 20, 2022
    2
    问之前不自己试一下吗?
    qeqv
    qeqv
    Nov 20, 2022
    3
    @qeqv 哦,我弄错了。这两个语法上是一样的,不过注意第一种不能用逗号返回值。不过你这里逗号看作是函数参数的分隔,所以没问题
    horseInBlack
    horseInBlack
    Nov 20, 2022
    4
    // 箭头函数的一般写法
    const arrowFunction1 = () => {
    return 123;
    };

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

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

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

    其余的就是可读性问题了,如果你打算在箭头函数后面拼接三元运算符之类的,可能读起来会比较难理解。
    xingguang
    xingguang
    Nov 21, 2022
    13
    就是简洁一些,如果返回的是个对象还可以这样写
    ```js
    () => ({ x:'xxx' });
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1110 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 23:03 · PVG 07:03 · LAX 15:03 · JFK 18:03
    ♥ Do have faith in what you're doing.