您的位置:首页 > Web前端 > JavaScript

javascript备忘录

2010-12-12 16:33 190 查看
1.基本概念

2.闭包,call,apply

2.1.闭包:以下是官方解释,A "closure" is an expression (typically a function) that can have free variables together with an environment that binds those variables (that "closes" the expression).

  在js中,根据链式作用域的特点,子对象可以访问父对象,父对象则不能访问子对象。这种在函数内部嵌套定义子函数就形成了闭包。闭包会使得函数的变量都保存在内存中。

  闭包的作用:

  1.向setTimeout函数传递带参数的函数,例如:

代码

var str = "a22b360ccc";
var x1 = str.replace(/\d/, "~"); //输出 a~2b360ccc
var x2 = str.replace(/\d/g, "~"); //输出 a~~b~~~ccc
var x3 = str.replace(/\d+/g, "~");//输入 a~b~ccc
var x4 = str.replace(/(\d+)/g, "($1)"); //输出 a(22)b(360)ccc
var x5 = str.replace(/(\d{3,})/g, "($1)"); //输出 a22b(360)ccc
var x6 = str.replace(/\d+/g, function (arg) { //(将匹配结果交给函数处理)输出 a32b370ccc
return arg*1 + 10;
});
var x7 = str.replace(/\d+(?=c)/g, "~"); //输出 a22b~ccc
var x8 = str.replace(/\d+(?!c)/g, "~"); //输出 a~b~0ccc
var x9 = str.replace(/\d+?(?!c)/g, "~"); //(lazy模式)输出 a~~b~~0ccc
var y1 = str.replace(/\d+(?!c)(?!\d)/g, "~"); //(对照x8来看)输出 a~b360ccc
var y2 = str.replace(/(\S)\1/g, "~"); //(判断有重复出现的字符)输出 a~b360~c
var y3 = str.replace(/(\S)\1{2,}/g, "~"); //输出 a22b360~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: