Noob警告! このwhileループ内のロジックを理解できないようです。これは、O'Reillyの「JavaScript:The Definitive Guide」15.3章の例15-2から取ったものです。私はnとnを減らしていることを理解しています。しかし、論理AND演算子を使ってその背後にある推論や理論を理解することはできません。このループは何を言っているのですか? nは減分され、var eは存在しますか?私にとっては、インクリメントする必要があるようですが、 - を++に変更すると、関数は常にnullを返します。もっと深く理解できるように助けてください。JavaScript:このwhileループのロジックを理解するのに問題があります
var firstpara = document.getElementsByTagName("p")[0];
/**
* Return the nth ancestor of e, or null if there is no such ancestor
* or if that ancestor is not an Element (a Document or DocumentFragment e.g.).
* If n is 0 return e itself. If n is 1 (or
* omitted) return the parent. If n is 2, return the grandparent, etc.
*/
function parent(e, n) {
if (n === undefined) n = 1;
while (n-- && e) e = e.parentNode;
if (!e || e.nodeType !== 1) return null;
return e;
}
parent(firstpara, 1); //returns <body>...</body> which is the parent node in my testpage
nがゼロでない限り 'n - 'は 'true'になるので、いくつかの反復回数の後に親が存在しないとき* * * nがデクリメントされて*になります。 – Pointy