短路运算符的使用

if (callback) {
  callback();
}

等同于
callback && callback();


animate.js
//1 动画函数 第三个参数是接收回调函数的形参
function animate(object,target,callback) {
    clearInterval(object.timer);
    object.timer = setInterval(function () {
        var step = (target - object.offsetLeft)/10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);//如果正值就往大取整 如果是负值就往小取整
        if (object.offsetLeft == target) {
            clearInterval(object.timer);
            //3 在定时器结束后 执行回调函数
            // if (callback) {
            //     callback();
            // }
            callback && callback();//逻辑与运算符
        }
        object.style.left = object.offsetLeft + step + 'px';
    },15);
}
原文地址:https://www.cnblogs.com/fuyunlin/p/14468021.html