Recently came across short-circuit evaluation and was a little confused by it as i only got into programming the past week. From what i understand if what ever comes before the first double pipe is true then it will stop and not evaluate what comes after the double pipe. For Example:
Example 1:
var a = true;
var b = a || {};
So i assume if a exists then assign a to b otherwise b is equal to an object.
What i dont understand is where i will use this and how it differs to a ternary operator, isn't the short circuit evaluation the same as:
Example 2:
var a = true;
var b = (a) ? a : {};
Why would one use example 1 over example 2 as it isn't any slower to write out or is there a speed benefit of the use of one over the other? or is this just a silly question and perhaps i'm missing something. If someone could clear this up for me that would be great.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…