for循环的条件写法问题

function editCSSRule(selector,styles,url,media){
        var styleSheets = (typeof url == 'array' ? url : getStyleSheets(url,media));

        for(var i=0,len=styleSheets.length;i<len;i++){
        //for(var i=0;i<styleSheets.length;i++){
            var rules = styleSheets[i].cssRules || styleSheets[i].rules;
            if(!rules) continue;

            selector = selector.toUpperCase();

            for(var j=0,len=rules.length;j<len;j++){
                if(rules[j].selectorText&&rules[j].selectorText.toUpperCase() == selector){
                    for(property in styles){
                        if(!styles.hasOwnProperty(property)) continue;
                        rules[j].style[camelize(property)] = styles[property];  
                    }   
                }   
            }
        }
    } 

for(var i=0,len=styleSheets.length;i<len;i++){
for(var i=0;i<styleSheets.length;i++){

这两句话有点问题
用**for(var i=0,len=styleSheets.length;i<len;i++){**页面会报错
TypeError: styleSheets[i] is undefined但是代码仍然执行成功没有中断

for(var i=0;i<styleSheets.length;i++){这样写就不报错为什么

 for(var i=0,len=styleSheets.length;i<len;i++)

这种不符合标准的for写法吧
for(var i in styleSheets)这是另一种for写法