zepto源码--classRE、maybeAddPx、children、defaultDisplay--学习笔记
1、classRE
对获取className的操作,进行缓存。如果缓存中有,直接读取缓存中的值,如果没有,则先进行缓存的存储,再读取值。

利用前面变量定义的classCache={}进行缓存的操作,如果classCache中存在对应的name,则读取classCache[name], 否则先将需要操作的name去除左右两边的空格之后,再赋值给对应的classCache[name],进行缓存。
2、maybeAddPx
对于需要添加单位的值,则添加单位。

变量定义的cssNumber列举了css属性值为纯数字,不需要单位的情况。maybeAddPx则是对除了cssNumber所列举的属性之外的属性值为数字的属性默认添加单位px。
3、defaultDisplay

利用变量elementDisplay获取对应元素默认的display属性值。
首先判断缓存变量elementDisplay中,如果不存在该元素的默认display属性,则进行缓存;如果存在,则直接返回默认display值。
不存在默认值的时候:
a:创建对应节点元素 
b:添加到页面中 
c:再获取该元素的display 
d:从页面中删除创建出来的节点元素 
e:如果默认值display的默认值为none,则纠正为block 
f:将display值赋值给缓存变量elementDisplay[nodeName] 
4、children

获取元素elment的直接子集元素节点。
先判断是否支持原生的children属性,如果支持,则直接使用element.children获取该元素的子元素,否则对该元素的所有子元素进行遍历,取nodeType为1的节点。
zepto源码--classRE、maybeAddPx、children、defaultDisplay--学习笔记的更多相关文章
- zepto源码--几个判断函数--学习笔记
几个需要经常用到的类型判断: 自定义一个类似于typeof的函数,提供更多的类型判断. class2type[toString.call(obj)] 是对class2type的取值 在后面通过循环对c ...
- Java源码之 java.util.concurrent 学习笔记01
准备花点时间看看 java.util.concurrent这个包的源代码,来提高自己对Java的认识,努力~~~ 参阅了@梧留柒的博客!边看源码,边通过前辈的博客学习! 包下的代码结构分类: 1.ja ...
- 不错的anroid源码在线浏览网站【学习笔记】
不错的anroid源码在线浏览网站:http://androidxref.com/
- zepto.1.1.6.js源码中的each方法学习笔记
each方法接受要遍历的对象和对应的回调函数作为参数,它的作用是: 1.如果要遍历的对象是类似数组的形式(以该对象的length属性值的类型是否为number类型来判断),那么就把以要遍历的对象为执行 ...
- zepto源码--isEmptyObject,isNumeric,inArray,trim--学习笔记
1.isEmptyObject,判断对象是否为空对象的函数 定义变量name,遍历传入对象的属性name,如果存在任何属性,则返回false,判定传入的参数为非空对象,否则即为空对象. 2.isNum ...
- zepto源码--核心方法10(位置)--学习笔记
今天基本上就是zepto学习笔记的最后一篇了,介绍一下有关位置的函数,position, offset, scrollLeft, scrollTop scrollLeft 如果所选取的包装集不存在,则 ...
- zepto源码--定义变量--学习笔记
主要了解一下zepto定义的初始变量. 逐一以自己的理解解析,待到后面完全透彻理解之后,争取再写一遍zepto源码学习的文章. 其中的undefined确实不明白为什么定义这么个变量在这里. docu ...
- zepto源码--核心方法(类数组相关)--学习笔记
从这篇起,在没有介绍到各类插件之前,后面将陆续介绍zepto对外暴露的核心方法.即$.fn={}里面的所有方法的介绍.会配合zepto的API进行介绍. 其实前面已经介绍了几个,如width,heig ...
- 读Zepto源码之样式操作
这篇依然是跟 dom 相关的方法,侧重点是操作样式的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...
随机推荐
- Xamarin Android开发实战(上册)大学霸内部资料
Xamarin Android开发实战(上册)大学霸内部资料 试读文档下载地址:http://pan.baidu.com/s/1jGEHhhO 密码:vcfm 介绍: 本教程是国内唯一的Xamar ...
- sql中的视图
视图可分为:普通视图和索引视图视图的作用: 1.提高数据库的安全性,降低数据库被攻击的风险,使外界无法得知数据库的数据结构 2.使查询更方便,简化程序员的操作非只读视图可以增删改,但不建议.视图的试用 ...
- C#设计模式——抽象工厂模式(原文转自:http://blog.jobbole.com/78059/)
一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创 ...
- ARC指南3 - @property
本章介绍引入ARC后@property的使用,跟ARC之前的还是很不一样的 一..h和.m文件的变化说明 1.对于.h头文件,主要是将属性定义由retain变为strong @property ( ...
- PDO常用方法及其应用
PDO::query() 主要是用于有记录结果返回的操作,特别是SELECT操作 PDO::exec() 主要是针对没有结果集合返回的操作,如INSERT.UPDATE等操作 PDO::prepare ...
- thinkphp中文验证码不能显示的问题
使用tp框架里的验证码,数字验证码能很好的显示出来,下面是实现的函数 function verify(){ import("ORG.Util.Image"); return Ima ...
- Css - 渲染按钮
基本的css3按钮渲染 <style type="text/css"> background: #f7f7f7; /* for Webkit */ background ...
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- $.each(),$.map()归纳
//$.each()对字典(没有索引).数组(有索引) 遍历 //两个参数 var json={"name":"李可","age":&quo ...
- Linux权限问题
Linux中各个用户对文件和目录的权限有三种: r: 读 w:写 x:执行 各个权限的意义: 文件 r:可以读取文件的内容 w:编辑文件内容 x:执行该文件 目录 r:列出该目录下的内容,即使用ls命 ...