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操作符不是必须的,但是为了保证局部变量的使用,推荐这么做。

推荐阅读更多精彩内容

  • 2016.9.9 第6章 原型与面向对象 原型虽然是定义对象的一种很方便的方式,但它的本质依然是函数特性。 使用原...
    如201608阅读 175评论 0 0
  • 前端性能优化指南 AJAX优化 缓存AJAX: 请求使用GET:当使用XMLHttpRequest时,而URL长度...
    kangkk阅读 1,191评论 1 31
  • 我和猫咪的日常(三) 雪宝刚刚到我家的时候,还是一只小奶猫,刚开始也许还有点害怕,就趴在沙发上也不怎么动 ...
    Small沫阅读 34评论 0 0
  • 如果你不喜欢我, 我愿低落到尘埃里,甚至比不了一粒沙子。 如果你不念我, 我愿做那点灯人,只为你照亮夜行的路。 如...
    如小妤阅读 62评论 3 3
  • 然后他再也不敢来了。
    seveneawa阅读 22评论 0 2