为了账号安全,请及时绑定邮箱和手机立即绑定

speed=speed>0?Math.ceil(speed):Math.floor(speed);这个语法怎么理解?

speed=speed>0?Math.ceil(speed):Math.floor(speed)这句话的语法就是

速度大于0就向上取整,速度小于0就向下取整吗?

Math.ceil(speed):Math.floor(speed)  中间的这个引号是else的意思吗?

不应该是这样写吗?

if(speed>0){

Math.ceil(speed);

}else{

Math.floor(speed);

}

但是这样写不行啊,回不去。

正在回答

2 回答

speed=speed>0?Math.ceil(speed):Math.floor(speed)是一个三目运算符,一般形式为:
表达式1? 表达式2: 表达式3 
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 你的没有输出啊,可以改为

if(speed>0){

speed=Math.ceil(speed);

}else{

speed=Math.floor(speed);

}


3 回复 有任何疑惑可以回复我~

对的,就是当这个数字是8.3或8.7都取9,如果是(-8.3)或(-8.7)取(-9)这样就保证鼠标覆盖和鼠标移出这两个动作执行的速度一致。Math.ceil(speed):Math.floor(speed)  这是一个真假的判断,就是判断这个speed>0是真还是假,真就取Math.ceil(speed),假就取Math.floor(speed)。你那样写是没问题的,只不过前面这种方法可以一行写出。而且可以回去的,我也试了一下,应该是你其它地方的问题,这只不过是不同的写法罢了,希望对你有帮助哈。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

speed=speed>0?Math.ceil(speed):Math.floor(speed);这个语法怎么理解?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信