javascript - 请问这段三元运算如何解读?
本文介绍了javascript - 请问这段三元运算如何解读?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
signin: function() {
"" == c ? "" == g ? (g = new Loginview({
el: "body",
mode: "signin"
}),
g.render()) : g.render("signin") : c.render("signin")
}
请问这段三元运算如何解读吗?表示看着很懵逼,第一次看到这样的用法
解决方案
我来说的清楚一点 本质有2点
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
优先级 运算类型 关联性 运算符 4 条件运算符 从右到左 … ? … : …
条件表达式的优先级别比较低(==之后) 然后是从右到左的 关联性
如@王小强 所说
本文的抽象形式:a ? b ? c : d : e
就等价于a ? (b ? c : d) : e
所以原来式子就等价于:
signin: function() {
if ("" == c) {
if ("" == g) {
g = new Loginview({
el: "body",
mode: "signin"
}),
g.render()
} else {
g.render("signin")
}
} else {
c.render("signin")
}
}
这篇关于javascript - 请问这段三元运算如何解读?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文