1,js arguments对象
在javascript中,不需要明确指出参数名,就能访问它们。如:
function hi(){
if(arguments[0]=="andy"){
return;
}
alert(arguments[0]);
}
用arguments[0]可以访问第一个参数,如此类推。
利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下:
function hi(){
if(arguments.length==1){
alert(arguments[0]);
}
else if(arguments.length==2){
alert(arguments[0] + arguments[1]);
}
}
2,prototype bind
当你在代码中将函数的引用赋给另外一个对象时,通常会希望函数运行在一个固定的作用域中。在 Prototype 中, 只要在函数上调用
3,js正则子表达式以及stringObject.replace( regexp/substr, replacement)
其中 replacement可以是字符串,也可以$还可以是函数。
a,在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:
name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
console.log(name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"));
圆括号可以表达一个子表达式。
4,js正则语法,以及转义问题
js有两种语法,一种是
在javascript中,不需要明确指出参数名,就能访问它们。如:
function hi(){
if(arguments[0]=="andy"){
return;
}
alert(arguments[0]);
}
用arguments[0]可以访问第一个参数,如此类推。
利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下:
function hi(){
if(arguments.length==1){
alert(arguments[0]);
}
else if(arguments.length==2){
alert(arguments[0] + arguments[1]);
}
}
2,prototype bind
var obj = { name: 'A nice demo', fx: function() {alert(this.name);} }; window.name = 'I am such a beautiful window!'; function runFx(f) { f(); } var fx2 = obj.fx.bind(obj); runFx(obj.fx); runFx(fx2);
当你在代码中将函数的引用赋给另外一个对象时,通常会希望函数运行在一个固定的作用域中。在 Prototype 中, 只要在函数上调用
bind
方法,将
this
关键字绑定到你所指定的对象, 就可以确保函数运行在期望的作用域中。如果需要的话,你也可以保存返回的函数,以重复使用它。
3,js正则子表达式以及stringObject.replace( regexp/substr, replacement)
其中 replacement可以是字符串,也可以$还可以是函数。
a,在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:
name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
console.log(name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"));
圆括号可以表达一个子表达式。
b,在本例中,我们将把所有的花引号替换为直引号:
name = '"a", "b"'; name.replace(/"([^"]*)"/g, "'$1'");
4,js正则语法,以及转义问题
js有两种语法,一种是
new RegExp(pattern, attributes); 第二种是直接量语法:pattern
最终写出字符串正则提取来为pattern
参考:http://blog.sina.com.cn/s/blog_49acb562010008z1.html