a=( b && c ) || d 这个式子是什么意思呢?

2018-03-21 15:35:19 +08:00
 ghostgril

再看公司项目代码的时候看到有这句话,据我的理解大概是类似三元运算符的功能

求教一下大家,这是怎么回事呢

3085 次点击
所在节点    JavaScript
7 条回复
sea516
2018-03-21 15:38:58 +08:00
不是三元啊,不是有括号吗
imherer
2018-03-21 15:39:11 +08:00
d 的值是什么类型? Boolean 吧?
当 || 前面为 true 的时候 a=true,否则 a=b
jmc891205
2018-03-21 15:39:50 +08:00
自己画个真值表理解理解
Phariel
2018-03-21 15:45:47 +08:00
如果 b 和 c 均为真值(不是 0 或者 false 或者 null 或者 undefined 或者空字符串) 把 c 赋给 a 否则把 d 赋给 a
coolzjy
2018-03-21 15:45:50 +08:00
一般习惯写成 `foo = (bar && bar.baz) || []`
其实相当于 `foo = bar && bar.baz` 的升级版
总有一个 `[]` 来兜底,也就是 `bar` 活着 `bar.baz` 任意一个为 falsy 则使用缺省值
ghostgril
2018-03-21 15:47:56 +08:00
@coolzjy 原来如此
shenjo
2018-03-21 15:51:29 +08:00
如果(b&&c) 是 false:a =d; 如果( b&&c )是 true : a=c

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

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

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

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

© 2021 V2EX