Giter Club home page Giter Club logo

reading-zepto's People

Contributors

heftykoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reading-zepto's Issues

读Zepto源码之神奇的$的zepto.qsa中有错误,希望更正

element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 。
1 对应的是 Node.ELEMENT_NODE ,10 对应的是 Node.DOCUMENT_TYPE_NODE , 11 对应的是 Node.DOCUMENT_FRAGMENT_NODE ,如果不为以上三种类型,直接返回 []。

这里楼主写错了 10 对应的是 Node.DOCUMENT_TYPE_NODE, 应该是 9对应 着Node.DOCUMENT_NODE

读Zepto源码之神奇的$ 的 zepto.init 下存在 两个 html 片段处理的情况

我认为是这样的

zepto.init = function(selector, context) {
  var dom  // dom 集合
  if (!selector) return zepto.Z() // 分支1
  else if (typeof selector == 'string') { // 分支2
    selector = selector.trim()
    if (selector[0] == '<' && fragmentRE.test(selector))
      dom = zepto.fragment(selector, RegExp.$1, context), selector = null
      else if (context !== undefined) return $(context).find(selector)
      else dom = zepto.qsa(document, selector)
        }
  else if (isFunction(selector)) return $(document).ready(selector) // 分支3
  else if (zepto.isZ(selector)) return selector  // 分支4
  else { // 分支5
    if (isArray(selector)) dom = compact(selector)
    else if (isObject(selector))
      dom = [selector], selector = null
      else if (fragmentRE.test(selector))
        dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null
        else if (context !== undefined) return $(context).find(selector)
        else dom = zepto.qsa(document, selector)
          }
  return zepto.Z(dom, selector)
}

分支2 是 selector 是字符串的情况下处理 zepto.fragment()的, 像 $('<div>')

分支5 引用类型下,不是数组,不是对象,未知名引用自动转为 html 调用 zepto.fragment()的, 我也具不出拿例子, 或者是 $(zepto collection) ?
但添加了还是有作用的,逻辑上面的严谨.

在"源码内部方法"章节里面 likeArray

感觉在 type = $.type(obj) 这里 ,
$.type(obj)计算赋值出来,本地type调用是有好处的,避免函数内反复调用$.type()影响性能.
和for 里面的len感觉是一样

for(var i = 0, len = array.lenght;i<len; i++) {
...
}

len 单独等出来,使每次循环的时候不用遍历数组计算长度.应该是一个道理啊.

小的笔误

zepto 的核心是一个闭包,加载完毕后立即执行。然后暴露给全局变量 zepto ,如果 $ 没有定义,也将 $ 赋值为 zepto 。

---> 第二个zepto应该是Zepto

读Zepto方法之内部方法章节一处描述错误

数据类型检测——isArray处:

我们都知道,instanceof 的检测的原理是查找实例的 prototype 是否在构造函数的原型链上,如果在,则返回 true。

是不是应该修改为:

我们都知道,instanceof 的检测的原理是查找构造函数的 prototype 是否在实例的原型链上,如果在,则返回 true。

a instanceof b,是查找 b.prototype 是否在 a 的原型链上。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.