再看公司项目代码的时候看到有这句话,据我的理解大概是类似三元运算符的功能
求教一下大家,这是怎么回事呢
1
sea516 2018-03-21 15:38:58 +08:00
不是三元啊,不是有括号吗
|
2
imherer 2018-03-21 15:39:11 +08:00
d 的值是什么类型? Boolean 吧?
当 || 前面为 true 的时候 a=true,否则 a=b |
3
jmc891205 2018-03-21 15:39:50 +08:00
自己画个真值表理解理解
|
4
Phariel 2018-03-21 15:45:47 +08:00 via Android
如果 b 和 c 均为真值(不是 0 或者 false 或者 null 或者 undefined 或者空字符串) 把 c 赋给 a 否则把 d 赋给 a
|
5
coolzjy 2018-03-21 15:45:50 +08:00 1
一般习惯写成 `foo = (bar && bar.baz) || []`
其实相当于 `foo = bar && bar.baz` 的升级版 总有一个 `[]` 来兜底,也就是 `bar` 活着 `bar.baz` 任意一个为 falsy 则使用缺省值 |
7
shenjo 2018-03-21 15:51:29 +08:00
如果(b&&c) 是 false:a =d; 如果( b&&c )是 true : a=c
|