资讯专栏INFORMATION COLUMN

zepto源码知识点

yy13818512006 / 3117人阅读

摘要:记录看源码时候不太了解的知识点关于新的选择器之前只了解和,这个方法是匹配是否符合选择器,返回值是但是大多不支持,需要用到浏览器前缀,有个不常用的运算符按位非运算符感觉是不实用的方法如果操作数能够转换为数值就直接取反并且减去一都转化为数字

记录看源码时候不太了解的知识点

 matchesSelector = element.matches ||element.webkitMatchesSelector ||element.mozMatchesSelector ||element.oMatchesSelector ||element.matchesSelector

关于H5新的选择器api之前只了解querySeletor和querySeletorAll,MatchesSelector这个方法是匹配是否符合选择器,返回值是true false;但是大多不支持,需要用到浏览器前缀,

let s = document.querySeletor("div").matchesSeletor(".theOne"); console.log(s); //true;
match = ~zepto.qsa(parent, selector).indexOf(element)

有个不常用的运算符按位非运算符~
感觉是不实用的方法

let num = 23,
boo = false,
obj = {},
arr = [],
na = NaN,
str = "abcdefg";
~num //-24,如果操作数能够转换为数值就直接取反并且减去一;
~obj     //-1,{}.[],undefined,null,false,NaN,“”都转化为数字0在取反
~str    //-1对无法转为数值的字符串等,转为0
//~的运算等级比.[]()优先级低

运算符优先级别大概的逻辑是
取值>一元操作符(包含非运算符!)>算术运算>大小比较>相等不相等>逻辑与或>赋值>三元>逗号

function isPlainObject(obj) {
            return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype
        }

undefined和null的区别
undefined == null //如果str == null那么str会有两个值成立
typeof null === "object"
typeof undefined === "undefined"

判断是否是类似的数组对象,即有Length属性

function likeArray(obj) {
    var length = !!obj && "length" in obj && obj.length,    //综合判断obj是否存在,有length属性z如果都成立的话,最后取得Length的数值
     type = $.type(obj)   //判断obj的类型
      return "function" != type && !isWindow(obj) && (//是否是function ,window,array
        "array" == type || length === 0 ||
        (typeof length == "number" && length > 0 && (length - 1) in obj)
          )
        }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89822.html

相关文章

  • Zepto源码之代码结构

    摘要:源码结构整体结构如果在编辑器中将的源码折叠起来,看到的就跟上面的代码一样。参考源码分析代码结构对象思想与源码分析设计和源码分析源码中关于的问题最后,所有文章都会同步发送到微信公众号上,欢迎关注欢迎提意见 虽然最近工作中没有怎么用 zepto ,但是据说 zepto 的源码比较简单,而且网上的资料也比较多,所以我就挑了 zepto 下手,希望能为以后阅读其他框架的源码打下基础吧。 源码版...

    warkiz 评论0 收藏0
  • FastClick 源码解读

    摘要:所有浏览器浏览器不支持安卓中中有属性安卓中中有属性有属性的有属性的所以在不需要的浏览器会直接掉,不会执行下面的所有代码。见源码行,可以看出在响应无操作后,则触发。 其实一直就想花些时间读一读那些优秀的开源库,今天终于下了决定打算死磕下自己,2016年每个月读2-3个优秀的开源库,把源码精彩的地方和自己心得分享给大家。 目录 (一)背景(二)源码解析(三)Zepto 点击穿透与 Fast...

    Chaz 评论0 收藏0
  • jQuery,zepto源码的简单实现记录

    摘要:本文记录,对的一些封装库的知识,我希望从本文开始去深入学习这门语言,以及在面向对象,原型上封装的使用。让自己在方面有能够有一定进步。 本文记录jQuery,Zepto对js的一些封装库的知识,我希望从本文开始去深入学习js这门语言,以及在面向对象,原型上封装的使用。让自己在js方面有能够有一定进步。共勉 jQuery库 简单的jQuery库的实现 需要先了解闭包,立即执行函数以及Jav...

    Dean 评论0 收藏0
  • zepto源码分析之form模块

    摘要:形如源代码在的原型上添加了相关方法。类似源代码每个表单的和都通过编码最后通过符号分割有了的基础,就是将相应的和都通过编码,然后用符号进行分割,也就达到了我们要的结果。 前言 JavaScript最初的一个应用场景就是分担服务器处理表单的责任,打破处处依赖服务器的局面,这篇文章主要介绍zepto中form模块关于表单处理的几个方法,serialize、serializeArray、sub...

    Muninn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<