为了账号安全,请及时绑定邮箱和手机立即绑定

js中 ||是什么意思?

js中 ||是什么意思?

繁花不似锦 2019-03-20 18:19:29
如上图,第2行和第3行是什么意思
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

||表示逻辑或,会尝试将符号左侧转换为Boolean对象,如果左侧为true则表达式结果为左侧值,如果为false,则表达式结果为右侧值。

在ES5的年代,这种写法多用于处理默认值。

结合截图来说:如果nodes[link.source]为空false,则给nodes[link.source]赋值为一个Object,并将其返回。
如果nodes[link.source]不为空false,则直接返回nodes[link.source]

P.S. 上边所说的false不是真正意义上的Boolean false,而是所有可以转换为false的值,包含nullundefined0之类的


查看完整回答
反对 回复 2019-04-05
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

逻辑或有点类似与默认参数,但是较默认参数更为宽松。
上述代码的意思为: 
当 nodes[link.source]有值时将其赋给 link.source,不继续执行||后面的代码;
当nodes[link.source]没有值时,将{name: link.source}先赋值给nodes[link.source],再将nodes[link.source]赋值给link.source。始终保证link.source可以取到相应的值。

查看完整回答
反对 回复 2019-04-05
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这个是一个逻辑运算符 ,表示 逻辑或 ,即其前后两边的逻辑判断 除非全部为假,否则都返回真。其对应真值表为


A判断     ||     B判断     输出

0                0         0

1                0         1

0                1         1

1                1         1

其中0表示假,1表示真。


具体到你提供的程序,这里利用了或逻辑运算的一个特性,就是前面为假就执行后面语句,前面为真就不执行后面语句。

其中第2句等效于


当 nodes[link.source]有值且不为0、false、‘’(空字符串)等逻辑假值时将其赋给 link.source,不继续执行||后面的代码;

当nodes[link.source]没有值或者值为0、false、‘0’时,将{name: link.source}先赋值给nodes[link.source],再将nodes[link.source]赋值给link.source。始终保证link.source可以取到相应的值。

后面的第3句类似,只是值的位置不同而已。


查看完整回答
反对 回复 2019-04-05
  • 3 回答
  • 0 关注
  • 1546 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信