var str="abcdefg";
 
//创建正则表达式
var abc=new RegExp("abc", "i");
 
//也可以用Perl风格
//var abc=/abc/i;
 
//最常用的 test exec match search replace split 6个方法
 
//test:检索字符串中指定的值。返回true或false
alert(abc.test(str)); //true
 
//exec:检索字符串中指定的值。返回找到的值,并确定其位置
alert(abc.exec(str)); //abc
 
//match:返回查询到的结果数组
alert(str.match(abc).length);//1
 
//search:返回搜索位置 类似于indexof
alert(str.search(abc)); //0
 
//replace:替换与正则表达式匹配的子字符串
alert(str.replace(abc,"cba"));//cbadefg
 
//split:把字符串分割为字符串数组
var d=/d/;
alert(str.split(abc).length); //2
//获取当前scripts文件地址
function getJsPath(){
    var a=document.scripts, b=a[a.length-1].src;
    //return b;
    return b.substring(0, b.lastIndexOf("/") + 1);
    //JQ方法
    //return $("script").last().attr("src");
}
alert(getJsPath());

上面的原理是获取最后一个js文件。

需要注意的是,本函数不能在包含在“$(document).ready(function(){ });”中运行,否则将获取最后一个js文件地址,而不是当前的文件地址。

Javascript判断子字符串存在的方法有两个,一个是String对象的indexOf()方法,一个是RegExp对象的test()方法。

阅读更多:About your home page

本函数可以去除Javascript数组中重复的值,相同的值合并成一个。

阅读更多:About your home page

本对象可以将Array、json等object数据转成字符串,方便调试。

阅读更多:About your home page

//包含CSS和JS文件函数
function includeJsCss(files,path){
    var files=(typeof files=="string"?[files]:files);
    for(var i=0; i<files.length; i++){
        var file=files[i].replace(/^\s|\s$/g, "");
        if(path){file=path+file;}
        var idVal=file.replace(/\W/g, "");
        if(document.getElementById(idVal)){continue;}
        var ext=/\.css$/.test(file);
        var eleTag=document.createElement(ext ? "link" :"script");
        ext ? (eleTag.type = "text/css" , eleTag.rel = "stylesheet") : eleTag.type = "text/javascript"
        eleTag[ext ? 'href' : 'src']=file;
        eleTag.id=idVal;
        document.getElementsByTagName('head')[0].appendChild(eleTag);
    }
}
//调用
includeJsCss(['js/js.js','css/css.css']);

这篇文章谁能看到谁就看吧。

1.依赖方式不同:CMD依赖就近,而AMD依赖前置

CMD:需要遍历所有的require关键字,找出后面的依赖

​define(function(require,exports,module){ 
var a = require('./a');
a.doSomthing();
});

AMD:无需遍历整个函数体找到它的依赖,因此性能有所提升,缺点就是开发者必须显式得指明依赖

define(['./a','./b'],function(a,b){ 
//......
a.doSomthing();
//......
b.doSomthing();
})

2.执行顺序不同:CMD是延迟执行的,而AMD是提前执行的

3.api设计角度不同

AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一。
AMD 里,require 分全局 require 和局部 require,都叫 require。
CMD 里,没有全局 require,而是根据模块系统的完备性,提供 seajs.use 来实现模块系统的加载启动。