Jerry框架

自己根据jQuery尝试着封装的一个小框架

section 1

正则表达式(regular expression)

  • 两种实例方式

    • 字面量形式
    • 构造函数形式
  • /g表示全局匹配

  • reg.text:验证参数中的字符串是否匹配正则的规则,返回值为true/false
  • 在非全局匹配下,match和exec是等效的。
  • 字符串中能用到正则表达式的api(4个)
  • 正则表表达式一定要掌握的两个api

要记住的6个API

  1. RegExp.test(str): 检测一个字符串是否匹配某个模式 .

    • 参数str:要检测的字符串。
    • 返回值:RegExp.test( ) 检测一个字符串是否匹配某个模式。
  2. 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()返回的方法相同。
  3. string.match()找到一个或多个正则表达式的匹配。

  4. stringsearch():返回第一个与正则相匹配的子串的起始位置。如果没有找到任何匹配的子串,则返回-1。
  5. string.split():把字符串分割为字符串数组。
  6. string.replace()替换与正则表达式匹配的子串。

正则表达式的量词

  1. ^:以某个字符或者子表达式(分组)开始
  • $:以某个字符或者子表达式结束
  • *:表示零个或者多个
  • +:表示一个或者多个
  • ?:表示一个或者零个
  • \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

函数的三种角色(取决于函数的调用方式)

  1. 普通函数
  2. 构造函数
  3. 对象

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对象用$()括起来.

####