这个语句中的问号和冒号分别是什么意思呢?

来源:3-1 JS缓冲动画

一指定江山

2016-11-18 03:11

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

问号和冒号分别代表什么意思呢?有点看不懂。

如果按照if语句的意思来理解:

if(speed>0){

Math.ceil(speed);

}else{

Math.floor(speed);

};

是不是问号就是代表判断,而冒号就是“否则”的意思?

写回答 关注

3回答

  • 疯狂的boy
    2016-11-18 09:59:30
    已采纳

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

    上述这段代码用的三元运算符,如同下面代码意思:

      var a = 5; var b = 8;
        var result = a > b ? a : b;
            alert(result);

    如果a大于b就把?后面a的值保存在result这个变量里面,alert(弹出a结果),如果b大就是其反。

    var result = 如果a>b就是a给result,如果不大于就把b结果给result,

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

    speed这个参数大于0就会先去找(?)问号后面的Math.ceil(speed)看他成不成立是不是它要的结果,如果不是就去找(:)后面的Math.floor(speed)的这句话,至于是找Math.ceil(speed)还是Math.floor(speed)那就因speed传的值决定。

    一指定江山

    非常感谢!

    2016-11-18 12:59:52

    共 1 条回复 >

  • StephenHenry_09
    2016-11-18 10:25:38

    这是问号表达式,问号前表达式为真,返回问号后冒号前的数据,问号前表达式为假,返回结果为冒号后的数据

  • 慕瓜4961349
    2016-11-18 10:15:09

    三元运算符.

    speed>0为真,执行Math.ceil(speed)

    speed>0为假,执行Math.floor(speed)

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题