这段代码需要说明吗?

时间:2010-10-29 05:49:59

标签: javascript

var p = this.getParams();
var pD = (o.params||{});
if (this.useJsonData) pD = (pD.jsonData||{});
this.cursor = (pD && pD[p.start]) ? pD[p.start] : 0;

这两行之间有什么区别。

this.cursor = pD[p.start] || this.cursor || 0;

第一个代码是否正常或是否有任何错误。

2 个答案:

答案 0 :(得分:1)

你的第二行有错。如果pD为空怎么办? 此外,它将保持this.cursor的值为true(不是null或false,即)。

否则,它们是相同的。

答案 1 :(得分:0)

看看这个页面: https://developer.mozilla.org/en/JavaScript/Guide/Expressions_and_Operators

搜索conditional operatorlogical operatorsshort-circuit evaluation