Javascript 为什么我们使用;p1Index=-1;及;len=p1.parentNode.childNodes.length“;?请告诉我“wheater”;p1.parentNode.childNodes“;指向同样的东西? DOM范围示例 函数useRanges(){ var range1=document.createRange(), range2=document.createRange(), p1=document.getElementById(“p1”), p1Index=-1, i、 len; 对于(i=0,len=p1.parentNode.childNodes.length;i

Javascript 为什么我们使用;p1Index=-1;及;len=p1.parentNode.childNodes.length“;?请告诉我“wheater”;p1.parentNode.childNodes“;指向同样的东西? DOM范围示例 函数useRanges(){ var range1=document.createRange(), range2=document.createRange(), p1=document.getElementById(“p1”), p1Index=-1, i、 len; 对于(i=0,len=p1.parentNode.childNodes.length;i,javascript,web,Javascript,Web," 我在javascript for web developer中找到了它 在这里,我们可以看到p1Index=-1,为什么不使用p1Index=0?“在您的示例中,p1Index在被重新分配为p1Index=i之前没有被引用;因此您实际上可以删除赋值运算符,而在上面的示例中没有任何区别: <!DOCTYPE html> <html> <head> <title>DOM Range Example</title>

"

我在javascript for web developer中找到了它


在这里,我们可以看到p1Index=-1,为什么不使用p1Index=0?“

在您的示例中,p1Index在被重新分配为p1Index=i之前没有被引用;因此您实际上可以删除赋值运算符,而在上面的示例中没有任何区别:

<!DOCTYPE html>
<html>
    <head>
        <title>DOM Range Example</title>
        <script type="text/javascript">
            function useRanges() {
                var range1 = document.createRange(),
                    range2 = document.createRange(),
                    p1 = document.getElementById("p1"),                
                    p1Index = -1,
                    i, len;

                for (i=0, len=p1.parentNode.childNodes.length; i < len; i++) {
                    if (p1.parentNode.childNodes[i] == p1) {
                        p1Index = i;
                       break;
                    }
                }
函数useRanges(){
var range1=document.createRange(),
range2=document.createRange(),
p1=document.getElementById(“p1”),
p1Index,//此处不需要赋值
i、 len;
对于(i=0,len=p1.parentNode.childNodes.length;i
        function useRanges() {
            var range1 = document.createRange(),
                range2 = document.createRange(),
                p1 = document.getElementById("p1"),                
                p1Index, // The assignment isn't needed here
                i, len;

            for (i=0, len=p1.parentNode.childNodes.length; i < len; i++) {
                if (p1.parentNode.childNodes[i] == p1) {
                    p1Index = i; // It just gets overwritten here 
                    break;
                }
            }
            // It might be used down here somewhere - your code example wasn't complete - p1Index is only conditionally overwritten when p1.parentNode.childNodes[i] == p1
        }