请问 abc = abc || {}; 这种写法是什么意思啊?
如果abc为null或“”或undefined的时候就把abc的值赋值为{} 等号右边的abc如果为false 则将等号左边的abc赋值为{},即一个空对象
相当于 abc = abc ? abc : {}
abc = abc ? abc : {}
||这份符号按什么解释?
@ggaaooppeenngg
就是或啊 你自己试试下面这些的结果
1 || 3 1 && 3 null || 2 null && 2
很多js初学者会被这个问题打倒的 心理默念 居然不是返回boolean?
特有写法。。。
@danielking 是不是返回的对象是最后一个检查的对象,而不是布尔值?
@ggaaooppeenngg 应该是的
1.如果第一个操作数是对象,则返回第一个操作数;
2.如果第一个操作数的求职结果为false,则返回第二个操作数; 3.如果两个操作数都是对象,则返回第一个操作数;
4.如果两个操作数都是null,则返回null; 5.如果两个操作数都是NaN,则返回NaN; 6.如果两个操作数都是undefined,则返回undefined;
摘自《javascript高级程序设计》
请搜索 js 短路写法 自己看看原理