问答详情
源自:3-1 JS缓冲动画

关于speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

按我的理解 这段代码应该等同于

if (speed > 0) {
            Math.ceil(speed);
        }else {
            Math.floor(speed);
        }

可是用if判断没有效果 这两种代码的区别在哪里?

提问者:ZHOUHOUJIE 2016-03-03 17:04

个回答

  • 我爱吃母鸡
    2016-06-30 14:48:17

    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);这是一个三元条件运算符,当speed>0为true时,把 Math.ceil(speed) 赋值给speed,当speed>0为false时,把Math.floor(speed)赋值给speed;

    你的if条件语句里没有把调用Math对象方法所取得的整数复制给你的speed;


  • ZHOUHOUJIE
    2016-03-03 17:08:01

    if (speed > 0) {
               speed = Math.ceil(speed);
            }else {
               spedd = Math.floor(speed);
            }

    白痴了 这样就对了...