what does “object || {} ” means in javascript?

2020-02-29 23:11发布

问题:

I found below line of code in javascript application.

var auth = parent.auth = parent.auth || {};

I know there is existing Object parent which is extended with auth Object but i don't understand what is parent.auth || {} doing here.

回答1:

parent.auth || {} means if parent.auth is undefined, null or false in boolean case then new empty object will be initialized and assigned.

or you can understand it like:

var auth;
if(parent.auth){       
    auth=parent.auth;   
} else {
    auth={};   
}


回答2:

it means if the value of parent.auth is falsy(false, 0, null, undefied etc) then assign the value {}(empty object) to the variable auth



回答3:

|| is or, the code then returns an empty object, if parent.auth is undefined.

Like checking for null, then creating a new object if null (from java/c#).