跳到主要内容
CNode

请问 abc = abc || {}; 这种写法是什么意思啊?

社区
Yyihaodian发布于 13 年前最后回复 13 年前
1071980

请问 abc = abc || {}; 这种写法是什么意思啊?

查看回复

回复 (10)

H
huangnaiang#1013 年前

请搜索 js 短路写法 自己看看原理

D
derek#913 年前

1.如果第一个操作数是对象,则返回第一个操作数;

2.如果第一个操作数的求职结果为false,则返回第二个操作数; 3.如果两个操作数都是对象,则返回第一个操作数;

4.如果两个操作数都是null,则返回null; 5.如果两个操作数都是NaN,则返回NaN; 6.如果两个操作数都是undefined,则返回undefined;

摘自《javascript高级程序设计》

D
danielking#813 年前
引用 leizongmin相当于 abc = abc ? abc : {}

@ggaaooppeenngg 应该是的

G
ggaaooppeenngg#713 年前
引用 leizongmin相当于 abc = abc ? abc : {}

@danielking 是不是返回的对象是最后一个检查的对象,而不是布尔值?

B
braveoyster#613 年前

特有写法。。。

S
sxd1140#513 年前

很多js初学者会被这个问题打倒的 心理默念 居然不是返回boolean?

D
danielking#413 年前
引用 leizongmin相当于 abc = abc ? abc : {}

@ggaaooppeenngg

就是或啊 你自己试试下面这些的结果

1 || 3 1 && 3 null || 2 null && 2

G
ggaaooppeenngg#313 年前
引用 leizongmin相当于 abc = abc ? abc : {}

||这份符号按什么解释?

L
leizongmin#213 年前

相当于 abc = abc ? abc : {}

D
duni2013#113 年前

如果abc为null或“”或undefined的时候就把abc的值赋值为{} 等号右边的abc如果为false 则将等号左边的abc赋值为{},即一个空对象

参与回复

登录后即可参与回复。登录