在 JS 中存在 "fn && fn() " 执行语句 这个语句有什么意义吗?

2020-06-23 11:53:46 +08:00
 VWMMWV

我在看别人代码的时候,有看到代码是这样写的

function(){
  fn&&fn()
}

大概意思是这么个意思,但是这我感觉这样写好像没意义,有带佬能指点一下吗

9177 次点击
所在节点    JavaScript
92 条回复
no1xsyzy
2020-06-23 18:08:34 +08:00
@Jirajine #71 秀英文是上次的事,你想不起来或者不想提就算了。
iamppz
2020-06-23 19:19:57 +08:00
js 不这么写,ts 会这么写,因为类型检查有编译器处理
proger
2020-06-23 19:55:19 +08:00
@DOLLOR 感谢 明白了
Jirajine
2020-06-23 20:05:13 +08:00
@no1xsyzy #80 好吧是我弄反了,自己印证了上面的观点:尽量避免这么用。
回帖搞反顶多被网友批判一番,关键业务逻辑搞反造成重大损失可能就得跑路了。
ericls
2020-06-23 20:14:11 +08:00
@iamppz ts 有 optional chaining.
auroraccc
2020-06-23 20:28:01 +08:00
a && a.b && a.b.c && a.b.c()
a?.b?.c
cigarzh
2020-06-23 21:48:12 +08:00
函数式编程基操

不要用面向对象的思想思考函数式编程的玩意…
royzxq
2020-06-24 00:10:11 +08:00
偷懒的时候会这么写
back0893
2020-06-24 00:15:31 +08:00
有 fn 就执行
灭有就不执行
不是很常规的写法
iamppz
2020-06-24 08:32:35 +08:00
@ericls 习惯了,React 的条件渲染和 shell 都是这个语法
fuwu1245
2020-06-24 10:08:04 +08:00
如果 fn 不是函数呢?那 fn()不就是个错了么
donghui1993
2020-07-28 14:00:56 +08:00
正确写法应该时这个吧:typeof(fn)==='function' && fn(),不过通常约定 fn&&fn() 传递的一定是函数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684046

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX