javascript框架设计书中细小知识笔记(一)

类数组转数组

  • 不考虑兼容性Array.prototype.slice.call()
  • 考虑IE兼容 HTMLCollection、NodeList
newArr = [];
while(i)
  arr[--i] = arr[i]

类型判断

  • type/instanceof
  • toString(不考虑鸭子类型)
  • 判断数组
    • typeof arr.sort == 'function'
    • arr.constructor == 'array'
    • 'splice' in arr
  • 判断window对象
    • toString (不同版本浏览器不同)
    • window == document //ie678 true
    • document == window //ie678 false
  • 判断类数组
    • 有length
    • type function/array
    • {}.propertyIsEnumerable 判断是否可遍历属性

domReady机制

  • API判断 onReadyStateChange
    • 为了解决IE死链,document.wirte 一个标签,在创建的标签上 onReadyStateChange后重新初始化.
  • firefox 上没有这个API
function checkScoll(){
  try{
    html.onScoll('left');
    onload()
  } catch(e) {
    settimeout(checkScoll)
  }
}

推荐阅读更多精彩内容