请问 abc = abc || {}; 这种写法是什么意思啊?
发布于 2年前 作者 yihaodian 1135 次浏览

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

10 回复

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

相当于 abc = abc ? abc : {}

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

@ggaaooppeenngg

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

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

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

特有写法。。。

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

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

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

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

摘自《javascript高级程序设计》

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

回到顶部