Javascript bootstrap.js工具提示插件中使用的奇怪语法,以及计算工具提示位置 placement=placement='bottom'&&pos.top+pos.height+actualHeight-docScroll>parentHeight顶部': 位置==“顶部”和&pos.top-docScroll-actualHeight
这是bootstrap.js工具提示插件中的代码。整体可以找到 为什么每行结尾都是“:”而不是“?”?Javascript bootstrap.js工具提示插件中使用的奇怪语法,以及计算工具提示位置 placement=placement='bottom'&&pos.top+pos.height+actualHeight-docScroll>parentHeight顶部': 位置==“顶部”和&pos.top-docScroll-actualHeight,javascript,twitter-bootstrap,Javascript,Twitter Bootstrap,这是bootstrap.js工具提示插件中的代码。整体可以找到 为什么每行结尾都是“:”而不是“?”? 你能帮我解释一下语法吗?我也不懂算术。如果你知道计算工具提示是否应该出现在元素的左、右、顶部或底部的技巧,请帮助我理解它。谢谢大家! JavaScript具有条件运算符?:(也称为三元运算符)。你可以阅读它的描述。一般语法是 状况?expr1:expr2 它计算条件,如果条件为true,则执行expr1;如果条件为false,则执行expr2。整个表达式的值是计算expr1或expr2的值 在
你能帮我解释一下语法吗?我也不懂算术。如果你知道计算工具提示是否应该出现在元素的左、右、顶部或底部的技巧,请帮助我理解它。谢谢大家! JavaScript具有条件运算符
?:
(也称为三元运算符)。你可以阅读它的描述。一般语法是
状况?expr1:expr2
它计算条件,如果条件为true
,则执行expr1;如果条件为false
,则执行expr2。整个表达式的值是计算expr1或expr2的值
在您发布的代码中,有几个条件运算符的嵌套用法。下面是两级嵌套:
placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
placement
由于优先规则的原因,对其进行评估时,会将其视为:
a ? x : b ? y : z
为清楚起见,通常不使用括号,并引入换行符和空白,以便每个条件运算符的各个部分都垂直对齐。例如:
a ? x : (b ? y : z)
这种情况可以持续任意多个条件。这是一个(实际上是一个链)
是英语的简写
a = b ? c : d
运算符优先级规则允许您编写
if (b) {
a = c
} else {
a = d
}
而不是Nif
/else if
语句,而不使用任何附加括号
像往常一样,您可以更好地理解自己在做什么,因为这个操作符在其他语言中的工作方式不同,尤其是在PHP中。这是一个
三元操作符
,请谷歌感谢您的帮助,特德。我懂一个?x:b,但是把他们放在一起可能会有挑战。
if (b) {
a = c
} else {
a = d
}
variable = condition1 ? value1 :
condition2 ? value2 :
. . .
conditionN ? valueN :
defaultValue