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~
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~
相关文章推荐
- JavaScript学习笔记(备忘录)
- doT.js——前端javascript模板引擎问题备忘录
- doT.js——前端javascript模板引擎问题备忘录
- JavaScript效果备忘录之输入后显示提示
- Javascript_备忘录4
- [技术备忘录]javascript 自动完成(jQuery方式) - 安羽. - 博客园
- JavaScript备忘录-闭包(2)
- 备忘录:推荐13款JavaScript图形和图表绘制工具
- JavaScript备忘录(0106更新ing......)
- 备忘录:javascript通过url向jsp页面传递中文参数乱码解决方法
- Javascript_备忘录1
- Javascript_备忘录6
- Javascript_备忘录1
- Javascript_备忘录3
- Javascript_备忘录2
- Javascript_备忘录3
- 备忘录:javascript通过url向jsp页面传递中文参数乱码解决方法
- Javascript 经典实用代码·备忘录
- JavaScript备忘录(1)——内置类型
- Javascript_备忘录2