jQuery源码分析之正则表达式

标签: JavaScript RegExp

jQuery源码中多处使用正则表达式处理字符串,挑选其中部分正则表达式加于研究,以加深对正则表达式的理解,巩固知识。本次涉及到的JavaScript正则表达式的概念有:组合选择引用

阅读全文

《JavaScript权威指南》读书笔记之正则表达式

标签: JavaScript

《JavaScript权威指南》读书笔记之正则表达式

1、定义
//正则表达式直接量
var regex = /s/;
//正则表达式对象RegExp
var regex = new RegExp('s');
2、特殊字符

正则表达式中许多标点符号具有特殊的含义:^$.*+?=!:|\/()[]{}。若想把它们当做普通字符处理,则需转义,即在这些符号之前加\

3、字符类
  • [...]位于中括号内的任意字符
  • [^..]不在中括号内的任意字符
  • .除换行符和其他Unicode行终止符之外的任意字符
  • \w任何ASCII单字符,等价于[a-zA-Z0-9_]
  • \W任何非ASCII单字符,等价于[^a-zA-Z0-9_]
  • \s任何Unicode空白符
  • \S任何非Unicode空白符的字符
  • \d任何ASCII数字,等价于[0-9]
  • \D任何非ASCII数字,等价于[^0-9]
阅读全文

JavaScript之Publish/Subscribe模式

标签: JavaScript

发布/订阅,是一种由两个部分构成:发布者和订阅者的消息传递模式。发布者将消息发布到特定频道,而订阅者接听频道,当频道上有消息发布时将接收到通知。

阅读全文

实现滚动条触底加载数据

标签: JavaScript

实现滚动条触底加载数据

1、背景

当用户信息较多,页面在展示数据时为减少加载时间,传统方法是采用分页显示,用户查看上一页数据或下一页数据时,需要来回切换,影响体验。现各大微博网站使用新方法弥补分页的不足:如数据过多,页面无法全部展示则先展示部分数据并显示滚动条,用户滑动滚动条触底时再加载部分新数据,而页面之前的数据仍将保留。

2、功能

模拟实现各大微博网站所采用的当滚动条触底加载数据的技术。

3、描述
  • v2.0版本

    window.ScrollLoadData(id,callBack)

    第一个参数必须:id为需要触发scroll事件的元素id。当传入的参数是window时,则scroll事件绑定在window

    第二个参数可选:scroll事件触发的回调函数,需用户自行实现。

  • v1.0版本

    window.scrollLoadData(id/window,callBack)

    第一个参数必须:id为需要触发scroll事件的元素id。当传入的参数是window时,则scroll事件绑定在window

    第二个参数可选:scroll事件触发的回调函数,需用户自行实现。

阅读全文

HTML之<meta>标签

标签: HTML

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta标签用于网页的<head></head>中,meta标签的用处很多。meta的属性有两种:namehttp-equivname属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:

name属性
  1. <meta name="generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等
  2. <meta name="keywords" contect="">向搜索引擎说明你的网页的关键词
  3. <meta name="description" contect="">告诉搜索引擎你的站点的主要内容
  4. <meta name="author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者
  5. <meta name="robots" contect= "all|none|index|noindex|follow|nofollow">,其中属性说明如下:
    • 设定为all:文件将被检索,且页面上的链接可以被查询
    • 设定为none:文件将不被检索,且页面上的链接不可以被查询
    • 设定为index:文件将被检索
    • 设定为follow:页面上的链接可以被查询
    • 设定为noindex:文件将不被检索,但页面上的链接可以被查询
    • 设定为nofollow:文件将不被检索,页面上的链接可以被查询
阅读全文

剔除数组重复元素的简单方法

标签: JavaScript

现有数组var array = ['测试','学习','测试'];其中array[0]array[2]值相同,需剔除重复值并输出。依据JavaScript对象不能有相同键以及相同键值覆盖的特点。实现如下:

1、简单版
var array = ['测试','学习','测试'];
var object = {};
for(var i = 0, length = array.length; i < length; i++){
    object[array[i]] = i;
}
for(var property in object){
    console.log(property);
}
阅读全文

jQuery性能最佳实践

标签: JavaScript jQuery

jQuery性能最佳实践

1、使用最新的jQuery版本

2、用对选择器
  1. 最快选择器:id选择器和标签选择器。$('#id'),$('form'),$('p')
  2. 较慢选择器:class选择器。$('.className')
  3. 最慢选择器:伪类选择器和属性选择器。$(':hidden'),$('[attribute=value]')
3、理解子元素和父元素的关系
   $('.child', $parent)
     
    $parent.find('.child')
     
    $parent.children('.child')
     
    $('#parent > .child')
     
    $('#parent .child')
     
    $('.child', $('#parent'))  
     
    /*以上写法最快的是$parent.find('.child'),最慢的是$('#parent .child')*/
    
阅读全文