Jerry框架
自己根据jQuery尝试着封装的一个小框架
section 1
正则表达式(regular expression)
两种实例方式
- 字面量形式
- 构造函数形式
/g表示全局匹配
- reg.text:验证参数中的字符串是否匹配正则的规则,返回值为true/false
- 在非全局匹配下,match和exec是等效的。
- 字符串中能用到正则表达式的api(4个)
- 正则表表达式一定要掌握的两个api
要记住的6个API
RegExp.test(str): 检测一个字符串是否匹配某个模式 .
- 参数str:要检测的字符串。
- 返回值:RegExp.test( ) 检测一个字符串是否匹配某个模式。
RegExp.exec(str): 通用的匹配模式
- 参数str:要检测的字符串。
- 返回值:—个数组,存放的是匹配的结果。如果没有找到匹配,值为null。
- exec()将检索字符串string,从中得到与正则表达式regexp相匹配的文本。如果exec()找到了匹配的文本,它就会返回一个结果数组。否则,返回null。这个返回数组的第0个元素就是与表达式相匹配的文本。第1个元素是与regexp的第一个子表达式相匹配的文本(如果存在)。第2个元素是与regexp的第二个子表达式相匹配的文本,以此类推。通常,数组的length属性声明的是数组中的元素个数。除了数组元素和length属性之外,exec()还返回两个属性。index属性声明的是匹配文本的第一个字符的位置。input属性指的就是string。在调用非全局RegExp对象的exec()方法时,返回的数组与调用方法String.match()返回的方法相同。
string.match()找到一个或多个正则表达式的匹配。
- stringsearch():返回第一个与正则相匹配的子串的起始位置。如果没有找到任何匹配的子串,则返回-1。
- string.split():把字符串分割为字符串数组。
- string.replace()替换与正则表达式匹配的子串。
正则表达式的量词
- ^:以某个字符或者子表达式(分组)开始
- $:以某个字符或者子表达式结束
- *:表示零个或者多个
- +:表示一个或者多个
- ?:表示一个或者零个
- \w:表示任意一个字符
- {m}:严格匹配,正好匹配m次。
- {m,n}:匹配m到n次 ,两边都是闭区间。
- {m,}:匹配m次以上。
####类数组:拥有一个数值length属性和对应的非负整数属性
- 包含数字类型的属性(符合0、1、2…这样的规律),并且有一个length属性,并且length的值和数字类型的属性的个数一致。类数组是不能调用数组相关的方法的。要想调用数组的方法,就要先转成数组。
- 当有新元素添加到类数组中时,自动更新length。
- 设置length为一个较小值时,会截断数组。
- 从Array.prototype中继承一些有用的方法。
- 其类型为”Array”.
var obj = {0:"a",1:"b",2:"c"};
section2
- jQuery的本质就是Javascript
- API:application programmer interface(方法)
jQuery中的each
- 可以遍历的数据有:数组,伪数组,对象
- $.each(要遍历的数据,fn);
- $(“div”).each(fn);
- 隐式迭代(遍历,循环)。
jQueryDOM操作
- 增删改查
- 样式操作CSS
- 属性操作
- 事件操作
- 动画操作 animate
- ajax $.ajax
- 大部分jQueryAPI的返回值都是jQuery对象—-链式操作。
call和apply的三个作用
- 调用方法
- 改变所调用函数的this指向
- 借用别的对象的方法
section3
封装jQuery插件
section4
函数的三种角色(取决于函数的调用方式)
- 普通函数
- 构造函数
- 对象
jQuery中的静态方法
- 保存在$里的方法,比如:$.each(),$.ajax()。
jQuery中的添加插件的方法
- 全局扩展,添加静态成员 $.extend
- 扩展到实例上 $.fn.extend
创建标签对象的两种方式
- 拼接字符串
- 使用模板(templete)
section5
常见的DOM操作API
- document.createElement: 创建标签节点。
- document.createTextNode: 创建文本节点。
- document.createDocumentFragment(): 创建节点容器,本身不添加到html中,只是作为一个临时容器存在。
- removeChild():删除一个节点,一般是要先找到父节点,再给父节点用这个方法删除子节点。
- insertBefore(n1,n2):往调用者的第n2个子节点之间添加新节点n1.
- replaceChild():
- getAttribute():获取属性
- setAttribute():设置属性
jQuery对象和原生DOM对象的本质区别:
- jQuery对象就是一个普通的自定义对象(我们通过init构造函数实例化出来的)(类数组,数组中的成员是选择器选中的dom元素)。
- 原生dom对象是系统提供的对象(浏览器帮我们实例化出来的)(不是类数组)。
两者之间的转换方式
- dom对象转化为jq对象:加get(0)或者[0].
- jq对象转化为dom对象:把dom对象用$()括起来.
####