JavaScripttwo"&引用;接线员一个接一个
请帮助我理解这段代码是如何工作的JavaScripttwo"&引用;接线员一个接一个,javascript,Javascript,请帮助我理解这段代码是如何工作的 function getOpacity( elem ) { var filter = elem.style.filter; return filter ? filter.indexOf("opacity=") >= 0 ? (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "" : "" : elem.style.opacity; } 我尝
function getOpacity( elem ) {
var filter = elem.style.filter;
return filter ?
filter.indexOf("opacity=") >= 0 ?
(parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "" :
"" :
elem.style.opacity;
}
我尝试了console.log(filter)并收到了空字符串。我发现两个“?”操作符发生了有趣的事情。我知道有一个是什么。但是我需要两个这样的操作符的帮助。它只是嵌套的条件(即
?:
)操作符。此代码相当于:
if (filter) {
if (filter.indexOf("opacity=") >= 0) {
return (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "";
} else {
return "";
}
} else {
return elem.style.opacity;
}
它只是嵌套的条件运算符(即
?:
)。此代码相当于:
if (filter) {
if (filter.indexOf("opacity=") >= 0) {
return (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "";
} else {
return "";
}
} else {
return elem.style.opacity;
}
它只是嵌套的条件运算符(即
?:
)。此代码相当于:
if (filter) {
if (filter.indexOf("opacity=") >= 0) {
return (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "";
} else {
return "";
}
} else {
return elem.style.opacity;
}
它只是嵌套的条件运算符(即
?:
)。此代码相当于:
if (filter) {
if (filter.indexOf("opacity=") >= 0) {
return (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "";
} else {
return "";
}
} else {
return elem.style.opacity;
}
的默认优先级
a ? b : c ? d : e
是
而不是,举例来说
(a ? b : c) ? d : e
这使得使用
?
三元运算符很容易,就像一系列没有多余括号的if/then/else
语句一样,尽管如果您认为它们可以提高可读性,欢迎添加它们。的默认优先级为
a ? b : c ? d : e
是
而不是,举例来说
(a ? b : c) ? d : e
这使得使用
?
三元运算符很容易,就像一系列没有多余括号的if/then/else
语句一样,尽管如果您认为它们可以提高可读性,欢迎添加它们。的默认优先级为
a ? b : c ? d : e
是
而不是,举例来说
(a ? b : c) ? d : e
这使得使用
?
三元运算符很容易,就像一系列没有多余括号的if/then/else
语句一样,尽管如果您认为它们可以提高可读性,欢迎添加它们。的默认优先级为
a ? b : c ? d : e
是
而不是,举例来说
(a ? b : c) ? d : e
这使得使用
?
三元运算符很容易,就像一系列没有多余括号的if/then/else
语句一样,尽管如果您认为它们可以提高可读性,欢迎添加它们。两个条件运算符没有什么特别之处,它们只是嵌套的。你可以用同样的方法做a+(b+c)
你可以做a?(x?y:z):c
。每个操作数可以是任何表达式,因此可以使用条件运算符作为操作数之一。两个条件运算符没有什么特殊之处,它们只是嵌套的。你可以用同样的方法做a+(b+c)
你可以做a?(x?y:z):c
。每个操作数可以是任何表达式,因此可以使用条件运算符作为操作数之一。两个条件运算符没有什么特殊之处,它们只是嵌套的。你可以用同样的方法做a+(b+c)
你可以做a?(x?y:z):c
。每个操作数可以是任何表达式,因此可以使用条件运算符作为操作数之一。两个条件运算符没有什么特殊之处,它们只是嵌套的。你可以用同样的方法做a+(b+c)
你可以做a?(x?y:z):c
。每个操作数都可以是任何表达式,因此您可以使用条件运算符作为操作数之一。为什么要使用:
而不是实际的javascript来显示等效值?@jfriend00 Oops,当时还以为这是python。我会解决的。(这特别奇怪,因为python没有条件运算符…)为什么要使用:
而不是实际的javascript来显示等价的代码?@jfriend00 Oops,当时还以为这是python。我会解决的。(这特别奇怪,因为python没有条件运算符…)为什么要使用:
而不是实际的javascript来显示等价的代码?@jfriend00 Oops,当时还以为这是python。我会解决的。(这特别奇怪,因为python没有条件运算符…)为什么要使用:
而不是实际的javascript来显示等价的代码?@jfriend00 Oops,当时还以为这是python。我会解决的。(这尤其奇怪,因为python没有条件运算符…)我不能说我曾经遇到过这样的情况:我积极地认为?:
的任何嵌套都会导致更可读的代码。。嗯,+1指出了优先顺序。我不能说我曾经遇到过这样的情况,我积极地认为任何?:
的嵌套都会导致更可读的代码。。嗯,+1指出了优先顺序。我不能说我曾经遇到过这样的情况,我积极地认为任何?:
的嵌套都会导致更可读的代码。。嗯,+1指出了优先顺序。我不能说我曾经遇到过这样的情况,我积极地认为任何?:
的嵌套都会导致更可读的代码。。嗯,+1表示优先顺序。