CNode

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

Yyihaodian发布于13 年前最后回复13 年前10 回复7166 浏览0 收藏

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

查看回复

回复 (10)

D
duni2013#1·13 年前

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

L
leizongmin#2·13 年前

相当于 abc = abc ? abc : {}

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

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

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

@ggaaooppeenngg

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

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

S
sxd1140#5·13 年前

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

B
braveoyster#6·13 年前

特有写法。。。

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

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

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

@ggaaooppeenngg 应该是的

D
derek#9·13 年前

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

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

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

摘自《javascript高级程序设计》

H
huangnaiang#10·13 年前

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

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