Javascript 这是什么hr=hr>=12 ? hr-12:hr;方法
我正在练习这个时钟教程。 代码中的所有内容我都很清楚。 接受这个Javascript 这是什么hr=hr>=12 ? hr-12:hr;方法,javascript,Javascript,我正在练习这个时钟教程。 代码中的所有内容我都很清楚。 接受这个hr=hr>=12?hr-12:hr我不清楚。可能是一个if-else语句 有人能解释一下这段代码在做什么吗 谢谢:)这就是所谓的三元运算 这意味着 if(hr>=12) hr=hr-12; else hr=hr; 以下内容足够了 if(hr>=12) hr=hr-12; 它被称为三元运算 这意味着 if(hr>=12) hr=hr-12; else hr=hr; 以下内容足够了 if(hr
hr=hr>=12?hr-12:hr代码>我不清楚。可能是一个if-else
语句
有人能解释一下这段代码在做什么吗
谢谢:)这就是所谓的三元运算
这意味着
if(hr>=12)
hr=hr-12;
else
hr=hr;
以下内容足够了
if(hr>=12)
hr=hr-12;
它被称为三元运算
这意味着
if(hr>=12)
hr=hr-12;
else
hr=hr;
以下内容足够了
if(hr>=12)
hr=hr-12;
如果hr
不符合该标准,则hr
应保持不变
如果hr
不符合该标准,则hr
应保持不变 它是一个三元运算符,形式如下:
condition ? if_true | if_false
如果为可读性添加更多括号,则可能会变成:
hr = ( (hr >= 12) ? (hr - 12) : hr )
也就是说,如果超过12,减去12,并存储回hr 它是一个三元运算符,形式如下:
condition ? if_true | if_false
如果为可读性添加更多括号,则可能会变成:
hr = ( (hr >= 12) ? (hr - 12) : hr )
也就是说,如果超过12,减去12,并存储回hr 这是三元运算符(?:)
以下是此处所做工作的简单说明:
if(hr>=12)
{
hr=hr-12;
}
//or else hr will have its same value
这是三元运算符(?:)
以下是此处所做工作的简单说明:
if(hr>=12)
{
hr=hr-12;
}
//or else hr will have its same value
hr=hr>=12?hr-12:hr代码>与相同,如果(hr>=12)hr=hr-12,则hr=hr代码>
bool?expr\u a:expr\u b
是一个运算符,当bool
为true时,计算expr\u a并将其值用作整个expr的值,否则expr\u b将为。hr=hr>=12?hr-12:hr代码>与相同,如果(hr>=12)hr=hr-12,则hr=hr代码>
bool?expr\u a:expr\u b
是一个运算符,当bool
为true时,计算expr\u a并将其值用作整个expr的值,否则expr\u b将为。它称为a。它称为a。它的意思是:
if(hr>=12)
{
hr = hr - 12;
}
一般来说:
x= condition ? y : z
如果条件为真,则表示:
if(hr>=12)
{
hr = hr - 12;
}
一般来说:
x= condition ? y : z
如果条件为真,则x=y
,否则x=z
其效果与此相同:
hr %= 12; //equivalent to -> hr = hr>=12 ? hr-12 : hr;
其效果与此相同:
hr %= 12; //equivalent to -> hr = hr>=12 ? hr-12 : hr;
我同意,这只是为了解释这一点我同意,这只是为了解释这一点,这一点在这个应用程序中是非常出色的。除了它不能完全做到这一点——当hr=25时,您的选项给出1,而他的选项给出13,因此它并不完全相等。@qdot所说的“相同效果”,我的意思是在本文中它具有相同的效果,其中hr
是小时,并且不能有[0,23]之外的值范围。或者它错过了有效性检查的可能性-如果在此操作后它不符合[0,11]范围,那么它显然无效。你的方法允许大的正整数通过。@qdot来吧,伙计,你在想什么“有效性”?您看到示例了吗->var hr=now.getHours()
,其中现在
是日期
对象。link->是的,我看到了这个例子,但它显然是有教育意义的-没有必要为此生气,你的评论在这个应用程序中显然很精彩,但它显然不是等效的-有时你可以使用它来清理表单中的输入值,然后检查它是否符合[0,11]范围-在这种情况下,您的答案不相等。在这种情况下,它并没有什么不合适的地方,但它绝对不是等价的,在这个应用程序中,它实际上非常出色。除了它不能完全做到这一点——当hr=25时,您的选项给出1,而他的选项给出13,因此它并不完全相等。@qdot所说的“相同效果”,我的意思是在本文中它具有相同的效果,其中hr
是小时,并且不能有[0,23]之外的值范围。或者它错过了有效性检查的可能性-如果在此操作后它不符合[0,11]范围,那么它显然无效。你的方法允许大的正整数通过。@qdot来吧,伙计,你在想什么“有效性”?您看到示例了吗->var hr=now.getHours()
,其中现在
是日期
对象。link->是的,我看到了这个例子,但它显然是有教育意义的-没有必要为此生气,你的评论在这个应用程序中显然很精彩,但它显然不是等效的-有时你可以使用它来清理表单中的输入值,然后检查它是否符合[0,11]范围-在这种情况下,您的答案不相等。在这种情况下,没有什么不恰当的地方,但绝对不是等价的