Javascript 此变量在此函数中的作用:

Javascript 此变量在此函数中的作用:,javascript,function,datetime,Javascript,Function,Datetime,我想知道下面函数中变量a的具体操作: function c(a) { var b = new Date; return Math.round(b.getTime() / 1e3 + (a ? a : 0)) } 需要清晰的代码: (a?a:0) 只想知道突出显示文本的逻辑是什么 如果a是undefined或false或null或NaN它将返回0,否则它将返回a 让我们假设 var someVar = 23; function c(a) { return a ? a

我想知道下面函数中变量a的具体操作:

function c(a) {
    var b = new Date;
    return Math.round(b.getTime() / 1e3 + (a ? a : 0))
}
需要清晰的代码:

(a?a:0)

只想知道突出显示文本的逻辑是什么

如果
a
undefined
false
null
NaN
它将返回
0
,否则它将返回
a

让我们假设

var someVar = 23;

function c(a) {
    return a ? a : 0;  //Also true for negative values
}

c(someVar); //will return 23


如果
a
undefined
false
null
NaN
则返回
0
否则返回
a

让我们假设

var someVar = 23;

function c(a) {
    return a ? a : 0;  //Also true for negative values
}

c(someVar); //will return 23

“?:”被称为三元运算符。它是
if-else
的快捷方式。例如,
var b=a?a:0
相当于:

var b;
if(a){ 
   b = a;
}else{ 
   b = 0; 
}  
另外,为了清楚起见,您的代码遗漏了()和;。以下是正确的版本:

function c(a) {
    var b = new Date();
    return Math.round(b.getTime() / 1e3 + (a ? a : 0));
}
请看一看以获得进一步的解释。

“:”被称为三元运算符。它是
if-else
的快捷方式。例如,
var b=a?a:0
相当于:

var b;
if(a){ 
   b = a;
}else{ 
   b = 0; 
}  
另外,为了清楚起见,您的代码遗漏了()和;。以下是正确的版本:

function c(a) {
    var b = new Date();
    return Math.round(b.getTime() / 1e3 + (a ? a : 0));
}

请看一看以进一步解释。

您可能想使用粗体样式,是吗

声明x>5?true:false是if…else语句的缩写版本。你把陈述放在“?”之前。“:”分隔if和else部分。如果该语句为true,则:前面的部分激发;如果为false,则激发后面的部分。因为javascript喜欢将任何内容转换为布尔值,所以您的语句与
if(a>0){b=a}else{b=0}

如果您想了解更多关于这些语句的信息,请搜索
三元运算符

您可能想使用粗体样式,不是吗

声明x>5?true:false是if…else语句的缩写版本。你把陈述放在“?”之前。“:”分隔if和else部分。如果该语句为true,则:前面的部分激发;如果为false,则激发后面的部分。因为javascript喜欢将任何内容转换为布尔值,所以您的语句与
if(a>0){b=a}else{b=0}
如果您想了解更多关于这些语句的信息,请搜索
三元运算符

这两行

var b = new Date;
return Math.round(b.getTime() / 1e3 + (a ? a : 0))
也可以写成(为了更好的可读性)

这个函数基本上是将1970年以来的秒数传递给你传递的值

这两条线

var b = new Date;
return Math.round(b.getTime() / 1e3 + (a ? a : 0))
if(a){
   return a;
}
else{
   return 0;
}
也可以写成(为了更好的可读性)


这个函数基本上是将1970年以来的秒数传递给你传递的值

这是一个三元运算符。。。如果a是一个真实值,则使用该else pass 0。如果传入函数c,则使用null/false/undefined(false)使
a==0是一种粗略的方法。。。也可能是
(a | | 0)
的副本。关于这个模式已经有足够多的文档了。它是一个三元运算符。。。如果a是一个真实值,则使用该else pass 0。如果传入函数c,则使用null/false/undefined(false)使
a==0是一种粗略的方法。。。也可能是
(a | | 0)
的副本。关于该模式的文档已经足够多了。
if(a){
   return a;
}
else{
   return 0;
}