if(marginLeft===distance){cb&&cb();
}
“cb&&cb();”的意思是先检查cb存不存在,如果不存在就不必执行cb()了,如果存在会执行该方法。如果直接写cb(),在你没有定义cb的时候会报错。这样写只是为了避免报错。这个地方因为自己定义了cb,直接写cb()也可以。
function delay(time, cb) { typeof cb == "function" && cb(time)}
cb&&cb(value) 的意思是:
如果cb为真(有值),那么执行cb(value);
如果cb为假,&&短路,那么不执行cb(value)。