Javascript 练习总结

根据http://fgm.cc/练习,总结如下:

  1. &&操作符
this.index == oBtn.length - 1 && (oDiv.style.cssText = "");

这句很困惑,查了之后上一句代码等同于

if((this.index)==oBtn.length-1){
    oDiv.style.cssText="";
}
  1. for-in
window.onload = function ()
{
  var oLink = document.getElementsByTagName("link")[0];
  var oSkin = document.getElementById("skin").getElementsByTagName("li");
  for(var i = 0; i< oSkin.length; i++)
  {     
    oSkin[i].onclick = function ()
    {
      for(var p in oSkin) oSkin[p].className = "";
      this.className = "current";
      oLink['href'] = this.id + ".css";             
    }   
  }
};

上面的代码是一个换肤的代码,不难理解出现疑问在

for( var p in oSkin) oSkin[p].className = ""

这一句了,没有搞懂p代表啥,在JS高级教程中

for-in语句是一种精准的迭代语句,可以用来枚举对象的属性

for(var p in oSkin) oSkin[p].className = "";

在这句代码中我们使用for-in循环来显示了BOM中oSkin对象的所有属性,每次执行循环 ,把oSkin这个对象存在的属性名赋值给变量P,这里的oSkin是一个 HTMLCollection [ li , li .current , li ],HTMLCollection 对象的行为和只读数组一样,所以可以使用 JavaScript 的方括号,通过编号或名称索引一个 HTMLCollection 对象。这个过程会持续到对象中的所有属性都被枚举一遍为止。var操作符不是必须的,但是为了保证局部变量的使用,推荐这么做。

你可能感兴趣的:(Javascript 练习总结)