这段JS代码是什么意思?

speed=speed>0?Math.ceil(speed):Math.floor(speed);特别是这个问号"?"和分号“:”是什么意思,感觉怪怪的。... speed=speed>0?Math.ceil(speed):Math.floor(speed);
特别是这个问号 "?" 和分号 “:” 是什么意思,感觉怪怪的。
展开
 我来答
流风子云51d37d
2013-06-29 · TA获得超过498个赞
知道小有建树答主
回答量:810
采纳率:100%
帮助的人:407万
展开全部
这是三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值
这里还多了一个赋值过程。speed>0是表达式1,Math.ceil(speed)是表达式2,Math.floor(speed)是表达式3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangxibaiyi
2013-06-30 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14412

向TA提问 私信TA
展开全部
这是三元运算,你也可以理解为if语句的简写
语法是: 条件 ? 如果条件成立执行这里 : 如果条件不成立执行这里;
如果把你上面的代码改成if语句,那就是这样写
if ( speed>0 ) {
speed = Math.ceil(speed);
}else{
speed = Math.floor(speed);
}
效果是一样的
只是用三元运算,代码简洁一些!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoapk
2013-06-29 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1659万
展开全部
speed= speed>0 ? Math.ceil(speed) : Math.floor(speed);

问号前面的是判断语句。如果true的时候返回冒号前面的,false的时候返回后面的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JacksonRicks
2013-06-29 · 超过20用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:60万
展开全部
这是条件运算:
如果speed>0,就把Math.ceil(speed)的值赋给前面的speed,如果不是就把Math.floor(speed)的值赋给它。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式