JS中变量后面有个问号是什么意思?

return n?n*arguments.callee(n-1):1;
JS中变量后面有个问号是什么意思?然后 后面一个:1又是什么意思?

这个是三元操作符,它在每一种语言中的功能和语法都是一样的。

举例:int a=3;int b=5;

int c= a>b?1:0;

解释:a大于的话,c就等于1,否则的话c等于0;

?是判断的意思,: 是否则的意思。

扩展资料:

三元操作符格式

如名字表示的三元运算符需要三个操作数。

语法为:条件表达式?表达式1:表达式2。

说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。

其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。

参考资料来源:百度百科-三元运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
问号与冒号要连在一起看。它们是完整的运算符。
如A=(B)?C:D
表示B不为0吗(或B为真吗)?如果是,A=C;如果不是,A=D。
对于你的例子,表示当n不为0时,返回n*arguments.callee(n-1);否则,返回1。本回答被提问者采纳
第2个回答  2010-07-03
这个是三元操作符,它在每一种语言中的功能和语法都是一样的。
举例:int a=3;int b=5;
int c= a>b?1:0;
解释:a大于的话,c就等于1,否则的话c等于0;
?是判断的意思,: 是否则的意思。

在你的例子应该解释为这样:判断n是否为真(即a是否大于0),真的话返回n*arguments.callee(n-1) 否则的话返回1.

一般语法中规定,整型变量大于0为真,小于等于0为假;
貌似你这个涉及到阶乘算法。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网