延迟函数:

    1. // 使用例子
    2. _.delay(function(name) {
    3. console.log('Hello ' + name);
    4. }, 1000, 'David');
    1. _.delay = function(fun, wait) {
    2. var args = [].slice.call(arguments, 2);
    3. return setTimeout(function(){
    4. fun.apply(null, args);
    5. }, wait);
    6. }

    XSS攻击:
    XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
    中文名:跨站脚本攻击
    英文名:Cross Site Scripting

    HTML字符实体(Character Entities),转义字符串(Escape Sequence)。

    HTML特殊转义字符列表
    最常用的字符实体 Character Entities:

    显示 说明 实体名称 实体编号
    半方大的空白
    全方大的空白
    不断行的空白格    
    < 小于 < <
    > 大于 > >
    & &符号 & &
    双引号 " "
    © 版权 © ©
    ® 已注册商标 ® ®
    商标(美国)
    × 乘号 × ×
    ÷ 除号 ÷ ÷
    1. function createEscape(map) {
    2. var exp = "(?:"+ Object.keys(map).join('|') +")";
    3. var regExp = new RegExp(exp, 'g');
    4. var rep = function(match){
    5. return map[match];
    6. };
    7. return function(value){
    8. // 匹配到,则替换字符串
    9. return regExp.test(value) ? value.replace(regExp, rep) : value;
    10. };
    11. }
    12. // 将 escapeMap 作为参数传递进去,减少了作用域查询,提高了性能
    13. _.escape = createEscape(escapeMap);

    1.(pattern):匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 0…0…9 属性。要匹配圆括号字符,请使用 ‘(‘ 或 ‘)’。
    2.(?:pattern):匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。
    3.(?=pattern):正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000” 中的 “Windows” ,但不能匹配 “Windows 3.1” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
    4.(?!pattern):负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1” 中的 “Windows”,但不能匹配 “Windows 2000” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始